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  }