provider/azurerm: Add tests for tag scaffolding
This commit is contained in:
parent
f374ca77e7
commit
a640ef9f16
|
@ -0,0 +1,97 @@
|
||||||
|
package azurerm
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"strings"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestValidateMaximumNumberOfARMTags(t *testing.T) {
|
||||||
|
tagsMap := make(map[string]interface{})
|
||||||
|
for i := 0; i < 16; i++ {
|
||||||
|
tagsMap[fmt.Sprintf("key%d", i)] = fmt.Sprintf("value%d", i)
|
||||||
|
}
|
||||||
|
|
||||||
|
_, es := validateAzureRMTags(tagsMap, "tags")
|
||||||
|
|
||||||
|
if len(es) != 1 {
|
||||||
|
t.Fatal("Expected one validation error for too many tags")
|
||||||
|
}
|
||||||
|
|
||||||
|
if !strings.Contains(es[0].Error(), "a maximum of 15 tags") {
|
||||||
|
t.Fatal("Wrong validation error message for too many tags")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestValidateARMTagMaxKeyLength(t *testing.T) {
|
||||||
|
tooLongKey := strings.Repeat("long", 128) + "a"
|
||||||
|
tagsMap := make(map[string]interface{})
|
||||||
|
tagsMap[tooLongKey] = "value"
|
||||||
|
|
||||||
|
_, es := validateAzureRMTags(tagsMap, "tags")
|
||||||
|
if len(es) != 1 {
|
||||||
|
t.Fatal("Expected one validation error for a key which is > 512 chars")
|
||||||
|
}
|
||||||
|
|
||||||
|
if !strings.Contains(es[0].Error(), "maximum length for a tag key") {
|
||||||
|
t.Fatal("Wrong validation error message maximum tag key length")
|
||||||
|
}
|
||||||
|
|
||||||
|
if !strings.Contains(es[0].Error(), tooLongKey) {
|
||||||
|
t.Fatal("Expected validated error to contain the key name")
|
||||||
|
}
|
||||||
|
|
||||||
|
if !strings.Contains(es[0].Error(), "513") {
|
||||||
|
t.Fatal("Expected the length in the validation error for tag key")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestValidateARMTagMaxValueLength(t *testing.T) {
|
||||||
|
tagsMap := make(map[string]interface{})
|
||||||
|
tagsMap["toolong"] = strings.Repeat("long", 64) + "a"
|
||||||
|
|
||||||
|
_, es := validateAzureRMTags(tagsMap, "tags")
|
||||||
|
if len(es) != 1 {
|
||||||
|
t.Fatal("Expected one validation error for a value which is > 256 chars")
|
||||||
|
}
|
||||||
|
|
||||||
|
if !strings.Contains(es[0].Error(), "maximum length for a tag value") {
|
||||||
|
t.Fatal("Wrong validation error message for maximum tag value length")
|
||||||
|
}
|
||||||
|
|
||||||
|
if !strings.Contains(es[0].Error(), "toolong") {
|
||||||
|
t.Fatal("Expected validated error to contain the key name")
|
||||||
|
}
|
||||||
|
|
||||||
|
if !strings.Contains(es[0].Error(), "257") {
|
||||||
|
t.Fatal("Expected the length in the validation error for value")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestExpandARMTags(t *testing.T) {
|
||||||
|
testData := make(map[string]interface{})
|
||||||
|
testData["key1"] = "value1"
|
||||||
|
testData["key2"] = 21
|
||||||
|
testData["key3"] = "value3"
|
||||||
|
|
||||||
|
tempExpanded := expandTags(testData)
|
||||||
|
expanded := *tempExpanded
|
||||||
|
|
||||||
|
if len(expanded) != 3 {
|
||||||
|
t.Fatalf("Expected 3 results in expanded tag map, got %d", len(expanded))
|
||||||
|
}
|
||||||
|
|
||||||
|
for k, v := range testData {
|
||||||
|
var strVal string
|
||||||
|
switch v.(type) {
|
||||||
|
case string:
|
||||||
|
strVal = v.(string)
|
||||||
|
case int:
|
||||||
|
strVal = fmt.Sprintf("%d", v.(int))
|
||||||
|
}
|
||||||
|
|
||||||
|
if *expanded[k] != strVal {
|
||||||
|
t.Fatalf("Expanded value %q incorrect: expected %q, got %q", k, strVal, expanded[k])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue