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  }