Files
terraform-provider-unifi/internal/provider/v1/resource_firewall_group_test.go
Mateusz Filipowicz 325d7b7f20 feat: initialize Terraform Plugin Framework (#23)
* feat: initialize Terraform Plugin Framework

* fix docker-compose path for tests

* fix: ensure documentation can be generated with old provider SDK and new plugin framework

* lint
2025-02-24 00:11:41 +01:00

106 lines
2.6 KiB
Go

package v1
import (
"fmt"
"github.com/hashicorp/terraform-plugin-testing/helper/acctest"
"regexp"
"strings"
"testing"
"github.com/hashicorp/terraform-plugin-testing/helper/resource"
)
func TestAccFirewallGroup_port_group(t *testing.T) {
name := acctest.RandomWithPrefix("tfacc")
resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { preCheck(t) },
ProviderFactories: providerFactories,
// TODO: CheckDestroy: ,
Steps: []resource.TestStep{
{
Config: testAccFirewallGroupConfig(name, "port-group", nil),
// Check: resource.ComposeTestCheckFunc(
// // testCheckFirewallGroupExists(t, "name"),
// ),
},
importStep("unifi_firewall_group.test"),
{
Config: testAccFirewallGroupConfig(name, "port-group", []string{"80", "443"}),
},
importStep("unifi_firewall_group.test"),
},
})
}
func TestAccFirewallGroup_address_group(t *testing.T) {
name := acctest.RandomWithPrefix("tfacc")
resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { preCheck(t) },
ProviderFactories: providerFactories,
// TODO: CheckDestroy: ,
Steps: []resource.TestStep{
{
Config: testAccFirewallGroupConfig(name, "address-group", nil),
// Check: resource.ComposeTestCheckFunc(
// // testCheckFirewallGroupExists(t, "name"),
// ),
},
importStep("unifi_firewall_group.test"),
{
Config: testAccFirewallGroupConfig(name, "address-group", []string{"10.0.0.1", "10.0.0.2"}),
},
importStep("unifi_firewall_group.test"),
{
Config: testAccFirewallGroupConfig(name, "address-group", []string{"10.0.0.0/24"}),
},
importStep("unifi_firewall_group.test"),
},
})
}
func TestAccFirewallGroup_same_name(t *testing.T) {
resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { preCheck(t) },
ProviderFactories: providerFactories,
// TODO: CheckDestroy: ,
Steps: []resource.TestStep{
{
Config: testAccFirewallGroupConfig_same_name,
ExpectError: regexp.MustCompile("FirewallGroupExisted"),
},
},
})
}
func testAccFirewallGroupConfig(name, ty string, members []string) string {
joined := strings.Join(members, "\",\"")
if len(joined) > 0 {
joined = "\"" + joined + "\""
}
return fmt.Sprintf(`
resource "unifi_firewall_group" "test" {
name = "%s"
type = "%s"
members = [%s]
}
`, name, ty, joined)
}
const testAccFirewallGroupConfig_same_name = `
resource "unifi_firewall_group" "test_a" {
name = "tf-acc fg"
type = "address-group"
members = []
}
resource "unifi_firewall_group" "test_b" {
name = "tf-acc fg"
type = "address-group"
members = []
}
`