github.com/mweagle/Sparta@v1.15.0/aws/cloudformation/resources/zipToS3BucketResourceTest_test.go (about) 1 package resources 2 3 import ( 4 "encoding/json" 5 "os" 6 "testing" 7 "time" 8 9 gocf "github.com/mweagle/go-cloudformation" 10 "github.com/sirupsen/logrus" 11 ) 12 13 func testEnabled() bool { 14 return os.Getenv("TEST_SRC_S3_KEY") != "" 15 } 16 func mockZipResourceEvent(t *testing.T) *CloudFormationLambdaEvent { 17 props := map[string]interface{}{ 18 "DestBucket": gocf.String(os.Getenv("TEST_DEST_S3_BUCKET")), 19 "SrcBucket": gocf.String(os.Getenv("TEST_SRC_S3_BUCKET")), 20 "SrcKeyName": gocf.String(os.Getenv("TEST_SRC_S3_KEY")), 21 "Manifest": map[string]interface{}{ 22 "Some": "Data", 23 }, 24 } 25 bytes, bytesErr := json.Marshal(props) 26 if bytesErr != nil { 27 t.Fatalf("Failed to serialize mock custom resource event") 28 } 29 30 return &CloudFormationLambdaEvent{ 31 RequestType: CreateOperation, 32 RequestID: time.Now().String(), 33 StackID: "1234567890", 34 LogicalResourceID: "logicalID", 35 ResourceProperties: json.RawMessage(bytes), 36 } 37 } 38 39 func TestUnzip(t *testing.T) { 40 if !testEnabled() { 41 return 42 } 43 resUnzip := gocf.NewResourceByType(ZipToS3Bucket) 44 zipResource := resUnzip.(*ZipToS3BucketResource) 45 event := mockZipResourceEvent(t) 46 47 // Put it 48 logger := logrus.New() 49 awsSession := awsSession(logger) 50 createOutputs, createError := zipResource.Create(awsSession, 51 event, 52 logger) 53 if nil != createError { 54 t.Errorf("Failed to create Unzip resource: %s", createError) 55 } 56 t.Logf("TestUnzip outputs: %#v", createOutputs) 57 58 deleteOutputs, deleteError := zipResource.Delete(awsSession, 59 event, 60 logger) 61 if nil != deleteError { 62 t.Errorf("Failed to create Unzip resource: %s", createError) 63 } 64 t.Logf("TestUnzip outputs: %#v", deleteOutputs) 65 }