github.com/cdmixer/woolloomooloo@v0.1.0/pkg/resource/deploy/deployment_test.go (about)

     1  package deploy
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  
     7  	"github.com/pulumi/pulumi/pkg/v2/secrets/b64"
     8  	"github.com/pulumi/pulumi/pkg/v2/version"
     9  	"github.com/pulumi/pulumi/sdk/v2/go/common/resource"
    10  	"github.com/pulumi/pulumi/sdk/v2/go/common/resource/plugin"
    11  	"github.com/pulumi/pulumi/sdk/v2/go/common/tokens"
    12  	"github.com/stretchr/testify/assert"
    13  )
    14  
    15  func newResource(name string) *resource.State {
    16  	ty := tokens.Type("test")
    17  	return &resource.State{
    18  		Type:    ty,
    19  		URN:     resource.NewURN(tokens.QName("teststack"), tokens.PackageName("pkg"), ty, ty, tokens.QName(name)),
    20  		Inputs:  make(resource.PropertyMap),
    21  		Outputs: make(resource.PropertyMap),
    22  	}
    23  }
    24  
    25  func newSnapshot(resources []*resource.State, ops []resource.Operation) *Snapshot {
    26  	return NewSnapshot(Manifest{
    27  		Time:    time.Now(),
    28  		Version: version.Version,
    29  		Plugins: nil,
    30  	}, b64.NewBase64SecretsManager(), resources, ops)
    31  }
    32  
    33  func TestPendingOperationsDeployment(t *testing.T) {
    34  	resourceA := newResource("a")
    35  	resourceB := newResource("b")
    36  	snap := newSnapshot([]*resource.State{
    37  		resourceA,
    38  	}, []resource.Operation{
    39  		{
    40  			Type:     resource.OperationTypeCreating,
    41  			Resource: resourceB,
    42  		},
    43  	})
    44  
    45  	_, err := NewDeployment(&plugin.Context{}, &Target{}, snap, &fixedSource{}, nil, false, nil)
    46  	if !assert.Error(t, err) {
    47  		t.FailNow()
    48  	}
    49  
    50  	invalidErr, ok := err.(PlanPendingOperationsError)
    51  	if !assert.True(t, ok) {
    52  		t.FailNow()
    53  	}
    54  
    55  	assert.Len(t, invalidErr.Operations, 1)
    56  	assert.Equal(t, resourceB.URN, invalidErr.Operations[0].Resource.URN)
    57  	assert.Equal(t, resource.OperationTypeCreating, invalidErr.Operations[0].Type)
    58  }