github.com/mweagle/Sparta@v1.15.0/aws/cloudformation/resources/helloWorldResource_test.go (about) 1 package resources 2 3 import ( 4 "encoding/json" 5 "testing" 6 "time" 7 8 gocf "github.com/mweagle/go-cloudformation" 9 "github.com/sirupsen/logrus" 10 ) 11 12 func mockHelloWorldResourceEvent(t *testing.T) *CloudFormationLambdaEvent { 13 props := map[string]interface{}{ 14 "ServiceToken": "arn:aws:lambda:us-west-2:123412341234:function:SpartaApplication-S3CustomResourced9468234fca3ffb5-18V7808Y2VSHY", 15 "Message": "World", 16 } 17 bytes, bytesErr := json.Marshal(props) 18 if bytesErr != nil { 19 t.Fatalf("Failed to serialize mock custom resource event") 20 } 21 22 return &CloudFormationLambdaEvent{ 23 RequestType: CreateOperation, 24 RequestID: time.Now().String(), 25 StackID: "1234567890", 26 LogicalResourceID: "logicalID", 27 ResourceProperties: json.RawMessage(bytes), 28 } 29 } 30 31 func TestCreateHelloWorld(t *testing.T) { 32 resHello := gocf.NewResourceByType(HelloWorld) 33 customResource := resHello.(*HelloWorldResource) 34 customResource.Message = gocf.String("Hello world") 35 } 36 37 func TestCreateHelloWorldNewInstances(t *testing.T) { 38 resHello1 := gocf.NewResourceByType(HelloWorld) 39 customResource1 := resHello1.(*HelloWorldResource) 40 41 resHello2 := gocf.NewResourceByType(HelloWorld) 42 customResource2 := resHello2.(*HelloWorldResource) 43 44 if &customResource1 == &customResource2 { 45 t.Errorf("gocf.NewResourceByType failed to make new instances") 46 } 47 } 48 49 func TestExecuteCreateHelloWorld(t *testing.T) { 50 resHello1 := gocf.NewResourceByType(HelloWorld) 51 customResource1 := resHello1.(*HelloWorldResource) 52 customResource1.Message = gocf.String("Create resource here") 53 54 logger := logrus.New() 55 awsSession := awsSession(logger) 56 createOutputs, createError := customResource1.Create(awsSession, 57 mockHelloWorldResourceEvent(t), 58 logger) 59 if nil != createError { 60 t.Errorf("Failed to create HelloWorldResource: %s", createError) 61 } 62 t.Logf("HelloWorldResource outputs: %s", createOutputs) 63 }