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  }