Skip to content

Commit

Permalink
Fix tests, subfolder_matches
Browse files Browse the repository at this point in the history
Signed-off-by: Modular Magician <[email protected]>
  • Loading branch information
emilymye authored and modular-magician committed Sep 23, 2019
1 parent 9513ee9 commit 964401a
Show file tree
Hide file tree
Showing 3 changed files with 80 additions and 8 deletions.
13 changes: 9 additions & 4 deletions google/resource_cloudiot_registry.go
Original file line number Diff line number Diff line change
Expand Up @@ -178,12 +178,17 @@ func buildEventNotificationConfigs(v []interface{}) []*cloudiot.EventNotificatio
}

func buildEventNotificationConfig(config map[string]interface{}) *cloudiot.EventNotificationConfig {
if len(config) == 0 {
return nil
}
cfg := &cloudiot.EventNotificationConfig{}
if v, ok := config["pubsub_topic_name"]; ok {
return &cloudiot.EventNotificationConfig{
PubsubTopicName: v.(string),
}
cfg.PubsubTopicName = v.(string)
}
return nil
if v, ok := config["subfolder_matches"]; ok {
cfg.SubfolderMatches = v.(string)
}
return cfg
}

func buildStateNotificationConfig(config map[string]interface{}) *cloudiot.StateNotificationConfig {
Expand Down
73 changes: 70 additions & 3 deletions google/resource_cloudiot_registry_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,11 @@ func TestAccCloudIoTRegistry_eventNotificationConfigDeprecatedSingleToPlural(t *
"google_cloudiot_registry.foobar", "event_notification_configs.#", "1"),
),
},
{
ResourceName: "google_cloudiot_registry.foobar",
ImportState: true,
ImportStateVerify: true,
},
{
// Use new field (event_notification_configs) to see if plan changed
Config: testAccCloudIoTRegistry_pluralEventNotificationConfigs(topic, registryName),
Expand All @@ -147,6 +152,30 @@ func TestAccCloudIoTRegistry_eventNotificationConfigDeprecatedSingleToPlural(t *
})
}

func TestAccCloudIoTRegistry_eventNotificationConfigMultiple(t *testing.T) {
t.Parallel()

registryName := fmt.Sprintf("tf-registry-test-%s", acctest.RandString(10))
topic := fmt.Sprintf("tf-registry-test-%s", acctest.RandString(10))

resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
Providers: testAccProviders,
CheckDestroy: testAccCheckCloudIoTRegistryDestroy,
Steps: []resource.TestStep{
{
// Use deprecated field (event_notification_config) to create
Config: testAccCloudIoTRegistry_multipleEventNotificationConfigs(topic, registryName),
},
{
ResourceName: "google_cloudiot_registry.foobar",
ImportState: true,
ImportStateVerify: true,
},
},
})
}

func TestAccCloudIoTRegistry_eventNotificationConfigPluralToDeprecatedSingle(t *testing.T) {
t.Parallel()

Expand All @@ -159,15 +188,20 @@ func TestAccCloudIoTRegistry_eventNotificationConfigPluralToDeprecatedSingle(t *
CheckDestroy: testAccCheckCloudIoTRegistryDestroy,
Steps: []resource.TestStep{
{
// Use new field (event_notification_config) to create
// Use new field (event_notification_configs) to create
Config: testAccCloudIoTRegistry_pluralEventNotificationConfigs(topic, registryName),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttr(
"google_cloudiot_registry.foobar", "event_notification_configs.#", "1"),
),
},
{
// Use new field (event_notification_configs) to see if plan changed
ResourceName: "google_cloudiot_registry.foobar",
ImportState: true,
ImportStateVerify: true,
},
{
// Use old field (event_notification_config) to see if plan changed
Config: testAccCloudIoTRegistry_singleEventNotificationConfig(topic, registryName),
PlanOnly: true,
ExpectNonEmptyPlan: false,
Expand Down Expand Up @@ -235,7 +269,7 @@ resource "google_cloudiot_registry" "foobar" {
name = "%s"
event_notification_config = {
event_notification_configs {
pubsub_topic_name = "${google_pubsub_topic.default-devicestatus.id}"
}
Expand Down Expand Up @@ -308,3 +342,36 @@ resource "google_cloudiot_registry" "foobar" {
}
`, topic, registryName)
}

func testAccCloudIoTRegistry_multipleEventNotificationConfigs(topic, registryName string) string {
return fmt.Sprintf(`
resource "google_project_iam_binding" "cloud-iot-iam-binding" {
members = ["serviceAccount:[email protected]"]
role = "roles/pubsub.publisher"
}
resource "google_pubsub_topic" "event-topic-1" {
name = "%s"
}
resource "google_pubsub_topic" "event-topic-2" {
name = "%s-alt"
}
resource "google_cloudiot_registry" "foobar" {
depends_on = ["google_project_iam_binding.cloud-iot-iam-binding"]
name = "%s"
event_notification_configs {
pubsub_topic_name = "${google_pubsub_topic.event-topic-1.id}"
subfolder_matches = "test"
}
event_notification_configs {
pubsub_topic_name = "${google_pubsub_topic.event-topic-2.id}"
subfolder_matches = ""
}
}
`, topic, topic, registryName)
}
2 changes: 1 addition & 1 deletion website/docs/r/cloudiot_registry.html.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ resource "google_pubsub_topic" "default-telemetry" {
resource "google_cloudiot_registry" "default-registry" {
name = "default-registry"
event_notification_config = {
event_notification_configs {
pubsub_topic_name = "${google_pubsub_topic.default-telemetry.id}"
}
Expand Down

0 comments on commit 964401a

Please sign in to comment.