Documentation
¶
Index ¶
- Variables
- func GetEntitlementTemplateUsagePeriod(t *testing.T, et productcatalog.EntitlementTemplate) *datex.Period
- func GetExamplePlanInput(t *testing.T) plan.CreatePlanInput
- func NewCustomerAdapter(t *testing.T, dbDeps *DBDeps) *testCustomerRepo
- func NewCustomerService(t *testing.T, dbDeps *DBDeps) customer.Service
- func NewPlanHelper(planService plan.Service) *planHelper
- func NewSubscriptionItemRepo(t *testing.T, dbDeps *DBDeps) testSubscriptionItemRepo
- func NewSubscriptionPhaseRepo(t *testing.T, dbDeps *DBDeps) testSubscriptionPhaseRepo
- func NewSubscriptionRepo(t *testing.T, dbDeps *DBDeps) testSubscriptionRepo
- func NewTestFeatureConnector(conn feature.FeatureConnector) *testFeatureConnector
- func SpecsEqual(t *testing.T, s1, s2 subscription.SubscriptionSpec)
- func ValidateSpecAndView(t *testing.T, expected subscription.SubscriptionSpec, ...)
- type DBDeps
- type ExposedServiceDeps
- type MockService
- func (s *MockService) Cancel(ctx context.Context, subscriptionID models.NamespacedID, ...) (subscription.Subscription, error)
- func (s *MockService) Continue(ctx context.Context, subscriptionID models.NamespacedID) (subscription.Subscription, error)
- func (s *MockService) Create(ctx context.Context, namespace string, spec subscription.SubscriptionSpec) (subscription.Subscription, error)
- func (s *MockService) Delete(ctx context.Context, subscriptionID models.NamespacedID) error
- func (s *MockService) Get(ctx context.Context, subscriptionID models.NamespacedID) (subscription.Subscription, error)
- func (s *MockService) GetView(ctx context.Context, subscriptionID models.NamespacedID) (subscription.SubscriptionView, error)
- func (s *MockService) Update(ctx context.Context, subscriptionID models.NamespacedID, ...) (subscription.Subscription, error)
- type MockWorkflowService
- func (s *MockWorkflowService) ChangeToPlan(ctx context.Context, subscriptionID models.NamespacedID, ...) (current subscription.Subscription, new subscription.SubscriptionView, ...)
- func (s *MockWorkflowService) CreateFromPlan(ctx context.Context, inp subscription.CreateSubscriptionWorkflowInput, ...) (subscription.SubscriptionView, error)
- func (s *MockWorkflowService) EditRunning(ctx context.Context, subscriptionID models.NamespacedID, ...) (subscription.SubscriptionView, error)
- type TestPatch
- func (p *TestPatch) ApplyTo(s *subscription.SubscriptionSpec, c subscription.ApplyContext) error
- func (p *TestPatch) MarshalJSON() ([]byte, error)
- func (p *TestPatch) Op() subscription.PatchOperation
- func (p *TestPatch) Path() subscription.PatchPath
- func (p *TestPatch) UnmarshalJSON(data []byte) error
- func (p *TestPatch) Validate() error
- func (p *TestPatch) Value() any
- func (p *TestPatch) ValueAsAny() any
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ExampleRateCard1 productcatalog.FlatFeeRateCard = productcatalog.FlatFeeRateCard{ RateCardMeta: productcatalog.RateCardMeta{ Key: ExampleFeatureKey, Name: "Rate Card 1", Description: lo.ToPtr("Rate Card 1 Description"), Feature: &feature.Feature{ Key: ExampleFeatureKey, }, EntitlementTemplate: productcatalog.NewEntitlementTemplateFrom(productcatalog.MeteredEntitlementTemplate{ IssueAfterReset: lo.ToPtr(100.0), UsagePeriod: ISOMonth, }), TaxConfig: &productcatalog.TaxConfig{ Stripe: &productcatalog.StripeTaxConfig{ Code: "txcd_10000000", }, }, Price: productcatalog.NewPriceFrom(productcatalog.UnitPrice{ Amount: alpacadecimal.NewFromInt(int64(ExamplePriceAmount)), }), }, BillingCadence: &ISOMonth, } ExampleRateCard2 productcatalog.FlatFeeRateCard = productcatalog.FlatFeeRateCard{ RateCardMeta: productcatalog.RateCardMeta{ Key: "rate-card-2", Name: "Rate Card 2", Description: lo.ToPtr("Rate Card 2 Description"), Feature: nil, Price: productcatalog.NewPriceFrom(productcatalog.FlatPrice{ Amount: alpacadecimal.NewFromInt(int64(0)), PaymentTerm: productcatalog.InAdvancePaymentTerm, }), }, BillingCadence: &ISOMonth, } ExamplePriceAmount int = 100 )
View Source
var ExampleCreateCustomerInput customer.CreateCustomerInput = customer.CreateCustomerInput{ Namespace: ExampleNamespace, CustomerMutate: customer.CustomerMutate{ Name: ExampleCustomerEntity.Name, PrimaryEmail: ExampleCustomerEntity.PrimaryEmail, Currency: ExampleCustomerEntity.Currency, UsageAttribution: ExampleCustomerEntity.UsageAttribution, }, }
View Source
var ExampleCustomerEntity customer.Customer = customer.Customer{ ManagedResource: models.ManagedResource{ Name: "John Doe", }, PrimaryEmail: lo.ToPtr("mail@me.uk"), Currency: lo.ToPtr(currencyx.Code("USD")), UsageAttribution: customer.CustomerUsageAttribution{ SubjectKeys: []string{"john-doe"}, }, }
View Source
var ExampleFeatureKey = "test-feature-1"
View Source
var ExampleFeatureMeterSlug = "meter1"
View Source
var ExampleNamespace = "test-namespace"
View Source
var ISOMonth, _ = datex.ISOString("P1M").Parse()
Functions ¶
func GetEntitlementTemplateUsagePeriod ¶
func GetEntitlementTemplateUsagePeriod(t *testing.T, et productcatalog.EntitlementTemplate) *datex.Period
func GetExamplePlanInput ¶
func GetExamplePlanInput(t *testing.T) plan.CreatePlanInput
func NewCustomerAdapter ¶
func NewPlanHelper ¶
func NewSubscriptionItemRepo ¶
func NewSubscriptionRepo ¶
func NewTestFeatureConnector ¶
func NewTestFeatureConnector(conn feature.FeatureConnector) *testFeatureConnector
func SpecsEqual ¶
func SpecsEqual(t *testing.T, s1, s2 subscription.SubscriptionSpec)
func ValidateSpecAndView ¶
func ValidateSpecAndView(t *testing.T, expected subscription.SubscriptionSpec, found subscription.SubscriptionView)
Ensures the created view matches the input spec
Types ¶
type DBDeps ¶
type DBDeps struct {
DBClient *db.Client
EntDriver *entdriver.EntPostgresDriver
PGDriver *pgdriver.Driver
}
func SetupDBDeps ¶
type ExposedServiceDeps ¶
type ExposedServiceDeps struct {
ItemRepo subscription.SubscriptionItemRepository
CustomerAdapter *testCustomerRepo
CustomerService customer.Service
FeatureConnector *testFeatureConnector
EntitlementAdapter subscription.EntitlementAdapter
PlanHelper *planHelper
PlanService plan.Service
DBDeps *DBDeps
EntitlementRegistry *registry.Entitlement
}
func NewService ¶
func NewService(t *testing.T, dbDeps *DBDeps) (services, ExposedServiceDeps)
type MockService ¶
type MockService struct {
CreateFn func(ctx context.Context, namespace string, spec subscription.SubscriptionSpec) (subscription.Subscription, error)
UpdateFn func(ctx context.Context, subscriptionID models.NamespacedID, target subscription.SubscriptionSpec) (subscription.Subscription, error)
DeleteFn func(ctx context.Context, subscriptionID models.NamespacedID) error
CancelFn func(ctx context.Context, subscriptionID models.NamespacedID, at subscription.Timing) (subscription.Subscription, error)
ContinueFn func(ctx context.Context, subscriptionID models.NamespacedID) (subscription.Subscription, error)
GetFn func(ctx context.Context, subscriptionID models.NamespacedID) (subscription.Subscription, error)
GetViewFn func(ctx context.Context, subscriptionID models.NamespacedID) (subscription.SubscriptionView, error)
}
func (*MockService) Cancel ¶
func (s *MockService) Cancel(ctx context.Context, subscriptionID models.NamespacedID, at subscription.Timing) (subscription.Subscription, error)
func (*MockService) Continue ¶
func (s *MockService) Continue(ctx context.Context, subscriptionID models.NamespacedID) (subscription.Subscription, error)
func (*MockService) Create ¶
func (s *MockService) Create(ctx context.Context, namespace string, spec subscription.SubscriptionSpec) (subscription.Subscription, error)
func (*MockService) Delete ¶
func (s *MockService) Delete(ctx context.Context, subscriptionID models.NamespacedID) error
func (*MockService) Get ¶
func (s *MockService) Get(ctx context.Context, subscriptionID models.NamespacedID) (subscription.Subscription, error)
func (*MockService) GetView ¶
func (s *MockService) GetView(ctx context.Context, subscriptionID models.NamespacedID) (subscription.SubscriptionView, error)
func (*MockService) Update ¶
func (s *MockService) Update(ctx context.Context, subscriptionID models.NamespacedID, target subscription.SubscriptionSpec) (subscription.Subscription, error)
type MockWorkflowService ¶
type MockWorkflowService struct {
CreateFromPlanFn func(ctx context.Context, inp subscription.CreateSubscriptionWorkflowInput, plan subscription.Plan) (subscription.SubscriptionView, error)
EditRunningFn func(ctx context.Context, subscriptionID models.NamespacedID, customizations []subscription.Patch) (subscription.SubscriptionView, error)
ChangeToPlanFn func(ctx context.Context, subscriptionID models.NamespacedID, inp subscription.ChangeSubscriptionWorkflowInput, plan subscription.Plan) (current subscription.Subscription, new subscription.SubscriptionView, err error)
}
func (*MockWorkflowService) ChangeToPlan ¶
func (s *MockWorkflowService) ChangeToPlan(ctx context.Context, subscriptionID models.NamespacedID, inp subscription.ChangeSubscriptionWorkflowInput, plan subscription.Plan) (current subscription.Subscription, new subscription.SubscriptionView, err error)
func (*MockWorkflowService) CreateFromPlan ¶
func (s *MockWorkflowService) CreateFromPlan(ctx context.Context, inp subscription.CreateSubscriptionWorkflowInput, plan subscription.Plan) (subscription.SubscriptionView, error)
func (*MockWorkflowService) EditRunning ¶
func (s *MockWorkflowService) EditRunning(ctx context.Context, subscriptionID models.NamespacedID, customizations []subscription.Patch) (subscription.SubscriptionView, error)
type TestPatch ¶
type TestPatch struct {
PatchValue any
PatchOperation subscription.PatchOperation
PatchPath subscription.PatchPath
ApplyToFn func(s *subscription.SubscriptionSpec, c subscription.ApplyContext) error
ValdiateFn func() error
}
func (*TestPatch) ApplyTo ¶
func (p *TestPatch) ApplyTo(s *subscription.SubscriptionSpec, c subscription.ApplyContext) error
func (*TestPatch) MarshalJSON ¶
func (*TestPatch) Op ¶
func (p *TestPatch) Op() subscription.PatchOperation
func (*TestPatch) Path ¶
func (p *TestPatch) Path() subscription.PatchPath
func (*TestPatch) UnmarshalJSON ¶
func (*TestPatch) ValueAsAny ¶
Click to show internal directories.
Click to hide internal directories.