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

     1  package resync_test
     2  
     3  import (
     4  	"bytes"
     5  	"encoding/json"
     6  	"fmt"
     7  
     8  	"github.com/kyma-incubator/compass/components/director/internal/tenantfetchersvc/resync"
     9  
    10  	"github.com/stretchr/testify/require"
    11  
    12  	"github.com/kyma-incubator/compass/components/director/pkg/tenant"
    13  
    14  	"github.com/google/uuid"
    15  
    16  	"github.com/kyma-incubator/compass/components/director/internal/model"
    17  )
    18  
    19  func fixTenantEventsResponse(events []byte, total, pages int, fieldMapping resync.TenantFieldMapping, mvSAFieldMapping resync.MovedSubaccountsFieldMapping, provider string) *resync.EventsPage {
    20  	response := fmt.Sprintf(`{
    21  		"events":       %s,
    22  		"total": %d,
    23  		"pages":   %d,
    24  	}`, string(events), total, pages)
    25  	return &resync.EventsPage{
    26  		FieldMapping:                 fieldMapping,
    27  		MovedSubaccountsFieldMapping: mvSAFieldMapping,
    28  		ProviderName:                 provider,
    29  		Payload:                      []byte(response),
    30  	}
    31  }
    32  
    33  func fixEvent(t require.TestingT, eventType, ga string, fields map[string]string) []byte {
    34  	eventData, err := json.Marshal(fields)
    35  	if err != nil {
    36  		require.NoError(t, err)
    37  	}
    38  	return wrapIntoEventPageJSON(string(eventData), eventType, ga)
    39  }
    40  
    41  func wrapIntoEventPageJSON(eventData, eventType, ga string) []byte {
    42  	return []byte(fmt.Sprintf(`{
    43  		"id":        "%s",
    44  		"type": "%s",
    45          "globalAccountGUID": "%s",
    46  		"eventData": %s
    47  	}`, fixID(), eventType, ga, eventData))
    48  }
    49  
    50  func fixBusinessTenantMappingInput(externalTenant, provider, subdomain, region, parent string, tenantType tenant.Type, licenseType *string) model.BusinessTenantMappingInput {
    51  	return model.BusinessTenantMappingInput{
    52  		Name:           externalTenant,
    53  		ExternalTenant: externalTenant,
    54  		Provider:       provider,
    55  		Subdomain:      subdomain,
    56  		Region:         region,
    57  		Parent:         parent,
    58  		Type:           tenant.TypeToStr(tenantType),
    59  		LicenseType:    licenseType,
    60  	}
    61  }
    62  
    63  func fixID() string {
    64  	return uuid.New().String()
    65  }
    66  
    67  func eventsToJSONArray(events ...[]byte) []byte {
    68  	return []byte(fmt.Sprintf(`[%s]`, bytes.Join(events, []byte(","))))
    69  }