Files
terraform-provider-unifi/internal/provider/resource_network_test.go
2019-12-31 01:22:43 -05:00

79 lines
1.9 KiB
Go

package provider
import (
"fmt"
"testing"
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
"github.com/hashicorp/terraform-plugin-sdk/terraform"
"github.com/paultyng/terraform-provider-unifi/unifi"
)
func TestAccNetwork_basic(t *testing.T) {
resource.ParallelTest(t, resource.TestCase{
Providers: providers,
PreCheck: func() { preCheck(t) },
// TODO: CheckDestroy: ,
Steps: []resource.TestStep{
{
Config: testAccNetworkConfig("10.0.202.1/24", 202),
Check: resource.ComposeTestCheckFunc(
// testCheckNetworkExists(t, "name"),
resource.TestCheckResourceAttr("unifi_network.test", "subnet", "10.0.202.1/24"),
resource.TestCheckResourceAttr("unifi_network.test", "vlan_id", "202"),
),
},
importStep("unifi_network.test"),
{
Config: testAccNetworkConfig("10.0.203.1/24", 203),
Check: resource.ComposeTestCheckFunc(
testCheckNetworkExists(t, "tfacc", nil),
resource.TestCheckResourceAttr("unifi_network.test", "subnet", "10.0.203.1/24"),
resource.TestCheckResourceAttr("unifi_network.test", "vlan_id", "203"),
),
},
importStep("unifi_network.test"),
},
})
}
func testCheckNetworkExists(t *testing.T, name string, network *unifi.Network) resource.TestCheckFunc {
return func(s *terraform.State) error {
networks, err := testClient.ListNetwork("default")
if err != nil {
return err
}
for _, net := range networks {
if net.Name == name {
if network != nil {
*network = net
}
return nil
}
}
return fmt.Errorf("unable to find network %q", name)
}
}
func testAccNetworkConfig(subnet string, vlan int) string {
return fmt.Sprintf(`
variable "subnet" {
default = "%s"
}
resource "unifi_network" "test" {
name = "tfacc"
purpose = "corporate"
subnet = var.subnet
vlan_id = %d
dhcp_start = cidrhost(var.subnet, 6)
dhcp_stop = cidrhost(var.subnet, 254)
dhcp_enabled = true
}
`, subnet, vlan)
}