88 lines
2.7 KiB
Go
88 lines
2.7 KiB
Go
package service
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"oci-portal/internal/oci"
|
|
)
|
|
|
|
func TestSubscriptionsPassThrough(t *testing.T) {
|
|
client := &fakeClient{
|
|
tenancy: oci.TenancyInfo{Name: "t", HomeRegionKey: "FRA"},
|
|
subscriptions: []oci.SubscriptionInfo{
|
|
{ID: "ocid1.organizationssubscription.oc1..a", ServiceName: "CLOUDCM"},
|
|
{ID: "ocid1.organizationssubscription.oc1..b", ServiceName: "SAAS"},
|
|
},
|
|
}
|
|
svc := newTestService(t, client)
|
|
cfg := importAliveConfig(t, svc)
|
|
|
|
subs, err := svc.Subscriptions(context.Background(), cfg.ID)
|
|
if err != nil {
|
|
t.Fatalf("Subscriptions: %v", err)
|
|
}
|
|
if len(subs) != 2 {
|
|
t.Fatalf("len(subs) = %d, want 2", len(subs))
|
|
}
|
|
if got, want := subs[0].ServiceName, "CLOUDCM"; got != want {
|
|
t.Errorf("subs[0].ServiceName = %q, want %q", got, want)
|
|
}
|
|
}
|
|
|
|
func TestSubscriptionDetailPassesID(t *testing.T) {
|
|
client := &fakeClient{
|
|
tenancy: oci.TenancyInfo{Name: "t", HomeRegionKey: "FRA"},
|
|
subDetail: oci.SubscriptionDetail{
|
|
ID: "ocid1.organizationssubscription.oc1..a",
|
|
ServiceName: "CLOUDCM",
|
|
PaymentModel: "FREE_TRIAL",
|
|
Promotions: []oci.PromotionInfo{{Status: "ACTIVE", Amount: 300}},
|
|
},
|
|
}
|
|
svc := newTestService(t, client)
|
|
cfg := importAliveConfig(t, svc)
|
|
|
|
detail, err := svc.SubscriptionDetail(context.Background(), cfg.ID, "ocid1.organizationssubscription.oc1..a")
|
|
if err != nil {
|
|
t.Fatalf("SubscriptionDetail: %v", err)
|
|
}
|
|
if got, want := client.subDetailID, "ocid1.organizationssubscription.oc1..a"; got != want {
|
|
t.Errorf("passed subscription id = %q, want %q", got, want)
|
|
}
|
|
if len(detail.Promotions) != 1 || detail.Promotions[0].Amount != 300 {
|
|
t.Errorf("Promotions = %+v, want one ACTIVE amount 300", detail.Promotions)
|
|
}
|
|
}
|
|
|
|
func TestSubscriptionDetailRejectsEmptyID(t *testing.T) {
|
|
svc := newTestService(t, &fakeClient{tenancy: oci.TenancyInfo{Name: "t"}})
|
|
cfg := importAliveConfig(t, svc)
|
|
if _, err := svc.SubscriptionDetail(context.Background(), cfg.ID, ""); err == nil {
|
|
t.Error("SubscriptionDetail(empty id): got nil error, want failure")
|
|
}
|
|
}
|
|
|
|
func TestLimitServicesPassThrough(t *testing.T) {
|
|
client := &fakeClient{
|
|
tenancy: oci.TenancyInfo{Name: "t", HomeRegionKey: "FRA"},
|
|
limitServices: []oci.LimitService{
|
|
{Name: "compute", Description: "Compute"},
|
|
{Name: "vcn", Description: "Virtual Cloud Network"},
|
|
},
|
|
}
|
|
svc := newTestService(t, client)
|
|
cfg := importAliveConfig(t, svc)
|
|
|
|
services, err := svc.LimitServices(context.Background(), cfg.ID, "")
|
|
if err != nil {
|
|
t.Fatalf("LimitServices: %v", err)
|
|
}
|
|
if len(services) != 2 {
|
|
t.Fatalf("len(services) = %d, want 2", len(services))
|
|
}
|
|
if got, want := services[0].Name, "compute"; got != want {
|
|
t.Errorf("services[0].Name = %q, want %q", got, want)
|
|
}
|
|
}
|