@@ -16,6 +16,7 @@ package servicediscovery
16
16
import (
17
17
"flag"
18
18
"fmt"
19
+ "strings"
19
20
"testing"
20
21
21
22
"github.com/aws/amazon-ecs-cli/ecs-cli/modules/clients/aws/cloudformation"
@@ -38,8 +39,8 @@ const (
38
39
testServiceName = "service"
39
40
testDescription = "clyde loves pudding"
40
41
otherTestDescription = "pudding plays hard to get"
41
- testNamespaceStackName = "amazon-ecs-cli-setup-cluster-service- private-dns-namespace"
42
- testSDSStackName = "amazon-ecs-cli-setup-cluster- service-service-discovery -service"
42
+ testNamespaceStackName = "amazon-ecs-cli-setup-private-dns-namespace-cluster-service "
43
+ testSDSStackName = "amazon-ecs-cli-setup-service-discovery- service-cluster -service"
43
44
testNamespaceName = "corp"
44
45
otherTestNamespaceName = "dumpling"
45
46
testVPCID = "vpc-8BAADF00D"
@@ -615,6 +616,22 @@ func TestDeleteServiceDiscoveryStackNotFoundError(t *testing.T) {
615
616
assert .Error (t , err , "Expected error calling delete" )
616
617
}
617
618
619
+ func TestCFNStackName (t * testing.T ) {
620
+ // underscore is allowed in cluster and service names, but not CFNStack names
621
+ clusterName := "supercalifragilisticexpialidocious_________1234_"
622
+ serviceName := "anotherreallylongstring_______________________________________hi______________________________________________________wassup__________________________________________123456789"
623
+
624
+ sdsStackName := cfnStackName (serviceDiscoveryServiceStackNameFormat , clusterName , serviceName )
625
+ namespaceStackName := cfnStackName (privateDNSNamespaceStackNameFormat , clusterName , serviceName )
626
+
627
+ // underscore is allowed in cluster and service names, but not CFNStack names
628
+ assert .False (t , strings .Contains (sdsStackName , "_" ), "Underscores are not allowed in CFN Stack names" )
629
+ assert .False (t , strings .Contains (namespaceStackName , "_" ), "Underscores are not allowed in CFN Stack names" )
630
+ // CFN Stacknames must be no longer than 128 characters
631
+ assert .True (t , len (sdsStackName ) <= 128 , "CFN Stack names must be no longer than 128 characters" )
632
+ assert .True (t , len (namespaceStackName ) <= 128 , "CFN Stack names must be no longer than 128 characters" )
633
+ }
634
+
618
635
func testCreateServiceDiscovery (t * testing.T , networkMode string , ecsParamsSD * utils.ServiceDiscovery , c * cli.Context , validateNamespace validateNamespaceParamsFunc , validateSDS validateSDSParamsFunc , createNamespace bool ) (* ecs.ServiceRegistry , error ) {
619
636
ctrl := gomock .NewController (t )
620
637
defer ctrl .Finish ()
0 commit comments