github.com/Axway/agent-sdk@v1.1.101/pkg/apic/provisioning/credentialrequestdefinitionbuilder_test.go (about) 1 package provisioning 2 3 import ( 4 "testing" 5 6 management "github.com/Axway/agent-sdk/pkg/apic/apiserver/models/management/v1alpha1" 7 "github.com/stretchr/testify/assert" 8 ) 9 10 func TestNewCredentialRequestBuilder(t *testing.T) { 11 tests := []struct { 12 name string 13 wantErr bool 14 }{ 15 { 16 name: "Success", 17 wantErr: false, 18 }, 19 { 20 name: "Fail", 21 wantErr: true, 22 }, 23 } 24 for _, tt := range tests { 25 t.Run(tt.name, func(t *testing.T) { 26 registerFuncCalled := false 27 registerFunc := func(credentialRequestDefinition *management.CredentialRequestDefinition) (*management.CredentialRequestDefinition, error) { 28 assert.NotNil(t, credentialRequestDefinition) 29 assert.Len(t, credentialRequestDefinition.Spec.Provision.Schema["properties"], 1) 30 assert.Len(t, credentialRequestDefinition.Spec.Schema["properties"], 1) 31 assert.NotNil(t, credentialRequestDefinition.Spec.Provision.Schema["properties"].(map[string]interface{})["prop"]) 32 assert.NotNil(t, credentialRequestDefinition.Spec.Schema["properties"].(map[string]interface{})["prop"]) 33 registerFuncCalled = true 34 return nil, nil 35 } 36 37 builder := NewCRDBuilder(registerFunc). 38 SetName(tt.name). 39 SetProvisionSchema( 40 NewSchemaBuilder(). 41 SetName("schema"). 42 AddProperty( 43 NewSchemaPropertyBuilder(). 44 SetName("prop"). 45 IsString())). 46 SetRequestSchema( 47 NewSchemaBuilder(). 48 SetName("schema"). 49 AddProperty( 50 NewSchemaPropertyBuilder(). 51 SetName("prop"). 52 IsString())). 53 SetWebhooks([]string{"webhook1", "webhook2"}). 54 IsRenewable(). 55 IsSuspendable(). 56 SetExpirationDays(90). 57 SetDeprovisionExpired(). 58 AddWebhook("webhook3") 59 60 if tt.wantErr { 61 builder = builder.SetProvisionSchema(nil) 62 } 63 _, err := builder.Register() 64 65 if tt.wantErr { 66 assert.NotNil(t, err) 67 assert.False(t, registerFuncCalled) 68 } else { 69 assert.Nil(t, err) 70 assert.True(t, registerFuncCalled) 71 } 72 }) 73 } 74 }