github.com/kyma-incubator/compass/components/director@v0.0.0-20230623144113-d764f56ff805/internal/domain/subscription/fixtures_test.go (about)

     1  package subscription_test
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/kyma-incubator/compass/components/director/internal/domain/subscription"
     7  
     8  	"github.com/kyma-incubator/compass/components/director/pkg/str"
     9  
    10  	"github.com/kyma-incubator/compass/components/director/internal/domain/scenarioassignment"
    11  	"github.com/kyma-incubator/compass/components/director/internal/domain/subscription/automock"
    12  	"github.com/kyma-incubator/compass/components/director/internal/model"
    13  	"github.com/kyma-incubator/compass/components/director/pkg/graphql"
    14  )
    15  
    16  var (
    17  	testDescription    = "{{display-name}}"
    18  	testJSONPath       = "displayName"
    19  	testProviderName   = "provider-display-name"
    20  	testURL            = "http://valid.url"
    21  	appInputJSONString = `{"Name":"foo","ProviderName":"compass","Description":"Lorem ipsum","Labels":{"test":["val","val2"]},"HealthCheckURL":"https://foo.bar","Webhooks":[{"Type":"","URL":"webhook1.foo.bar","Auth":null},{"Type":"","URL":"webhook2.foo.bar","Auth":null}],"IntegrationSystemID":"iiiiiiiii-iiii-iiii-iiii-iiiiiiiiiiii"}`
    22  )
    23  
    24  func fixJSONApplicationCreateInput(name string) string {
    25  	return fmt.Sprintf(`{"name": "%s", "providerName": "%s", "description": "%s", "healthCheckURL": "%s", baseURL:"https://{{subdomain}}.{{region}}.com"}`, name, testProviderName, testDescription, testURL)
    26  }
    27  
    28  func fixModelAppTemplateWithAppInputJSON(id, name, appInputJSON string) *model.ApplicationTemplate {
    29  	out := fixModelApplicationTemplate(id, name)
    30  	out.ApplicationInputJSON = appInputJSON
    31  
    32  	return out
    33  }
    34  
    35  func fixModelApplicationTemplate(id, name string) *model.ApplicationTemplate {
    36  	desc := testDescription
    37  	out := model.ApplicationTemplate{
    38  		ID:                   id,
    39  		Name:                 name,
    40  		Description:          &desc,
    41  		ApplicationInputJSON: appInputJSONString,
    42  		Placeholders:         fixModelPlaceholders(),
    43  		Webhooks:             []model.Webhook{},
    44  		AccessLevel:          model.GlobalApplicationTemplateAccessLevel,
    45  	}
    46  
    47  	return &out
    48  }
    49  
    50  func fixModelAppTemplateWithPlaceholdersWithAppInputJSON(id, name, appInputJSON string) *model.ApplicationTemplate {
    51  	out := fixModelApplicationTemplateWithPlaceholders(id, name)
    52  	out.ApplicationInputJSON = appInputJSON
    53  
    54  	return out
    55  }
    56  
    57  func fixModelApplicationTemplateWithPlaceholders(id, name string) *model.ApplicationTemplate {
    58  	desc := testDescription
    59  	out := model.ApplicationTemplate{
    60  		ID:                   id,
    61  		Name:                 name,
    62  		Description:          &desc,
    63  		ApplicationInputJSON: appInputJSONString,
    64  		Placeholders:         fixModelPlaceholdersFull(),
    65  		Webhooks:             []model.Webhook{},
    66  		AccessLevel:          model.GlobalApplicationTemplateAccessLevel,
    67  	}
    68  
    69  	return &out
    70  }
    71  
    72  func fixModelPlaceholdersFull() []model.ApplicationTemplatePlaceholder {
    73  	placeholderNameDesc := testDescription
    74  	placeholderNameJSONPath := "name"
    75  	placeholderDisplayNameDesc := testDescription
    76  	placeholderDisplayNameJSONPath := "display-name"
    77  	return []model.ApplicationTemplatePlaceholder{
    78  		{
    79  			Name:        "name",
    80  			Description: &placeholderNameDesc,
    81  			JSONPath:    &placeholderNameJSONPath,
    82  		},
    83  		{
    84  			Name:        "display-name",
    85  			Description: &placeholderDisplayNameDesc,
    86  			JSONPath:    &placeholderDisplayNameJSONPath,
    87  		},
    88  	}
    89  }
    90  
    91  func fixModelApplicationFromTemplateInputWithPlaceholders(name, subscribedAppName, subdomain, region string) model.ApplicationFromTemplateInput {
    92  	return model.ApplicationFromTemplateInput{
    93  		TemplateName: name,
    94  		Values: []*model.ApplicationTemplateValueInput{
    95  			{Placeholder: "name", Value: subscribedAppName},
    96  			{Placeholder: "display-name", Value: subscribedAppName},
    97  			{Placeholder: "subdomain", Value: subdomain},
    98  			{Placeholder: "region", Value: region},
    99  		},
   100  	}
   101  }
   102  
   103  func fixModelApplication(id, name, appTemplateID string) *model.Application {
   104  	return &model.Application{
   105  		Status: &model.ApplicationStatus{
   106  			Condition: model.ApplicationStatusConditionInitial,
   107  		},
   108  		Name:                  name,
   109  		BaseEntity:            &model.BaseEntity{ID: id},
   110  		ApplicationTemplateID: &appTemplateID,
   111  	}
   112  }
   113  
   114  func fixModelRuntime(name string) *model.Runtime {
   115  	desc := testDescription
   116  	out := model.Runtime{
   117  		Name:        name,
   118  		Description: &desc,
   119  	}
   120  
   121  	return &out
   122  }
   123  
   124  func fixModelPlaceholders() []model.ApplicationTemplatePlaceholder {
   125  	placeholderDesc := testDescription
   126  	placeholderJSONPath := testJSONPath
   127  	return []model.ApplicationTemplatePlaceholder{
   128  		{
   129  			Name:        "name",
   130  			Description: &placeholderDesc,
   131  			JSONPath:    &placeholderJSONPath,
   132  		},
   133  		{
   134  			Name:        "display-name",
   135  			Description: &placeholderDesc,
   136  			JSONPath:    &placeholderJSONPath,
   137  		},
   138  	}
   139  }
   140  
   141  func fixModelApplicationFromTemplateInput(name, subscribedAppName, subdomain, region string) model.ApplicationFromTemplateInput {
   142  	return model.ApplicationFromTemplateInput{
   143  		TemplateName: name,
   144  		Values: []*model.ApplicationTemplateValueInput{
   145  			{Placeholder: "name", Value: subscribedAppName},
   146  			{Placeholder: "display-name", Value: subscribedAppName},
   147  			{Placeholder: "subdomain", Value: subdomain},
   148  			{Placeholder: "region", Value: region},
   149  		},
   150  	}
   151  }
   152  
   153  func fixModelApplicationFromTemplateSimplifiedInput(name, subscribedAppName, subdomain, region string) model.ApplicationFromTemplateInput {
   154  	return model.ApplicationFromTemplateInput{
   155  		TemplateName: name,
   156  		Values: []*model.ApplicationTemplateValueInput{
   157  			{Placeholder: "name", Value: subscribedAppName},
   158  			{Placeholder: "display-name", Value: subscribedAppName},
   159  		},
   160  	}
   161  }
   162  
   163  func fixGQLApplicationFromTemplateWithPayloadInput(name, subscribedAppName, subdomain, region string) graphql.ApplicationFromTemplateInput {
   164  	placeholderPayload := "{\"name\":\"subscription-app-name-value\", \"display-name\":\"subscription-app-name-value\"}"
   165  
   166  	return graphql.ApplicationFromTemplateInput{
   167  		TemplateName:        name,
   168  		PlaceholdersPayload: &placeholderPayload,
   169  	}
   170  }
   171  
   172  func fixGQLApplicationCreateInput(name string) graphql.ApplicationRegisterInput {
   173  	return graphql.ApplicationRegisterInput{
   174  		Name:           name,
   175  		ProviderName:   &testProviderName,
   176  		Description:    &testDescription,
   177  		HealthCheckURL: &testURL,
   178  	}
   179  }
   180  
   181  func fixModelApplicationCreateInput(name string) model.ApplicationRegisterInput {
   182  	return model.ApplicationRegisterInput{
   183  		Name:           name,
   184  		Description:    &testDescription,
   185  		HealthCheckURL: &testURL,
   186  	}
   187  }
   188  
   189  func fixModelApplicationCreateInputWithLabels(name, subscribedSubaccountID string) model.ApplicationRegisterInput {
   190  	return model.ApplicationRegisterInput{
   191  		Name:           name,
   192  		Description:    &testDescription,
   193  		HealthCheckURL: &testURL,
   194  		LocalTenantID:  str.Ptr(consumerTenantID),
   195  		Labels: map[string]interface{}{
   196  			"managed":                          "false",
   197  			scenarioassignment.SubaccountIDKey: subscribedSubaccountID,
   198  			subscription.InstancesLabelKey:     1,
   199  		},
   200  	}
   201  }
   202  
   203  func unusedLabelSvc() *automock.LabelService {
   204  	return &automock.LabelService{}
   205  }
   206  
   207  func unusedRuntimeSvc() *automock.RuntimeService {
   208  	return &automock.RuntimeService{}
   209  }
   210  
   211  func unusedRuntimeContextSvc() *automock.RuntimeCtxService {
   212  	return &automock.RuntimeCtxService{}
   213  }
   214  
   215  func unusedUUIDSvc() *automock.UidService {
   216  	return &automock.UidService{}
   217  }