github.com/kyma-incubator/compass/components/director@v0.0.0-20230623144113-d764f56ff805/internal/domain/scenarioassignment/fixtures_test.go (about) 1 package scenarioassignment_test 2 3 import ( 4 "context" 5 "database/sql/driver" 6 "errors" 7 8 "github.com/DATA-DOG/go-sqlmock" 9 "github.com/kyma-incubator/compass/components/director/internal/domain/scenarioassignment" 10 "github.com/kyma-incubator/compass/components/director/internal/domain/tenant" 11 "github.com/kyma-incubator/compass/components/director/internal/model" 12 "github.com/kyma-incubator/compass/components/director/pkg/graphql" 13 "github.com/kyma-incubator/compass/components/director/pkg/pagination" 14 ) 15 16 const ( 17 tenantID = "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" 18 externalTargetTenantID = "extTargetTenantID" 19 targetTenantID = "targetTenantID" 20 externalTenantID = "eeeeeeee-eeee-eeee-eeee-eeeeeeeeeeee" 21 scenarioName = "scenario-A" 22 errMsg = "some error" 23 ) 24 25 func fixModel() model.AutomaticScenarioAssignment { 26 return fixModelWithScenarioName(scenarioName) 27 } 28 29 func fixGQL() graphql.AutomaticScenarioAssignment { 30 return fixGQLWithScenarioName(scenarioName) 31 } 32 33 var testTableColumns = []string{"scenario", "tenant_id", "target_tenant_id"} 34 35 func fixModelWithScenarioName(scenario string) model.AutomaticScenarioAssignment { 36 return model.AutomaticScenarioAssignment{ 37 ScenarioName: scenario, 38 Tenant: tenantID, 39 TargetTenantID: targetTenantID, 40 } 41 } 42 43 func fixModelPageWithItems(in []*model.AutomaticScenarioAssignment) model.AutomaticScenarioAssignmentPage { 44 return model.AutomaticScenarioAssignmentPage{ 45 Data: in, 46 PageInfo: &pagination.Page{}, 47 TotalCount: len(in), 48 } 49 } 50 51 func fixGQLWithScenarioName(scenario string) graphql.AutomaticScenarioAssignment { 52 return graphql.AutomaticScenarioAssignment{ 53 ScenarioName: scenario, 54 Selector: &graphql.Label{ 55 Key: scenarioassignment.SubaccountIDKey, 56 Value: externalTargetTenantID, 57 }, 58 } 59 } 60 61 func fixGQLPageWithItems(in []*graphql.AutomaticScenarioAssignment) graphql.AutomaticScenarioAssignmentPage { 62 return graphql.AutomaticScenarioAssignmentPage{ 63 Data: in, 64 PageInfo: &graphql.PageInfo{}, 65 TotalCount: len(in), 66 } 67 } 68 69 func fixEntity() scenarioassignment.Entity { 70 return scenarioassignment.Entity{ 71 Scenario: scenarioName, 72 TenantID: tenantID, 73 TargetTenantID: targetTenantID, 74 } 75 } 76 77 func fixEntityWithScenarioName(scenario string) scenarioassignment.Entity { 78 return scenarioassignment.Entity{ 79 Scenario: scenario, 80 TenantID: tenantID, 81 TargetTenantID: targetTenantID, 82 } 83 } 84 85 func fixError() error { 86 return errors.New(errMsg) 87 } 88 89 func fixCtxWithTenant() context.Context { 90 return tenant.SaveToContext(context.TODO(), tenantID, externalTenantID) 91 } 92 93 type sqlRow struct { 94 scenario string 95 tenantID string 96 targetTenantID string 97 } 98 99 func fixSQLRows(rows []sqlRow) *sqlmock.Rows { 100 out := sqlmock.NewRows(testTableColumns) 101 for _, row := range rows { 102 out.AddRow(row.scenario, row.tenantID, row.targetTenantID) 103 } 104 return out 105 } 106 107 func fixAutomaticScenarioAssignmentRow(scenarioName, tenantID, targetTenantID string) []driver.Value { 108 return []driver.Value{scenarioName, tenantID, targetTenantID} 109 } 110 111 func fixAutomaticScenarioAssignmentColumns() []string { 112 return []string{"scenario", "tenant_id", "target_tenant_id"} 113 }