diff options
author | Gjøran Voldengen <gjoranv@gmail.com> | 2023-10-23 16:15:25 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-23 16:15:25 +0200 |
commit | ce3f04a365d8d655fafd8fe43c5ffa6868db8cdd (patch) | |
tree | 0c9a6fe0c431a64e5f48f8fef646f446aa82b56b /controller-server/src/test | |
parent | c9f803a28279856e5481d979550cf17212de3013 (diff) | |
parent | 9fa1d2c8e1c6c5424a39e481077c8b2ed0f374c7 (diff) |
Merge pull request #29038 from vespa-engine/bill-status-enum
Bill status enum
Diffstat (limited to 'controller-server/src/test')
2 files changed, 22 insertions, 8 deletions
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/BillingReportMaintainerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/BillingReportMaintainerTest.java index a224af83401..5cb46664a75 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/BillingReportMaintainerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/BillingReportMaintainerTest.java @@ -4,6 +4,7 @@ package com.yahoo.vespa.hosted.controller.maintenance; import com.yahoo.config.provision.SystemName; import com.yahoo.config.provision.TenantName; import com.yahoo.vespa.hosted.controller.ControllerTester; +import com.yahoo.vespa.hosted.controller.api.integration.billing.BillStatus; import com.yahoo.vespa.hosted.controller.api.integration.billing.InvoiceUpdate; import com.yahoo.vespa.hosted.controller.api.integration.billing.PlanRegistryMock; import com.yahoo.vespa.hosted.controller.tenant.BillingReference; @@ -43,25 +44,38 @@ public class BillingReportMaintainerTest { } @Test - void only_bills_with_exported_id_are_maintained() { + void only_open_bills_with_exported_id_are_maintained() { var t1 = tester.createTenant("t1"); var billingController = tester.controller().serviceRegistry().billingController(); var billingDb = tester.controller().serviceRegistry().billingDatabase(); var start = LocalDate.of(2020, 5, 23).atStartOfDay(ZoneOffset.UTC); var end = start.toLocalDate().plusDays(6).atStartOfDay(ZoneOffset.UTC); + var bill1 = billingDb.createBill(t1, start, end, "non-exported"); var bill2 = billingDb.createBill(t1, start, end, "exported"); + var bill3 = billingDb.createBill(t1, start, end, "exported-and-frozen"); + billingDb.setStatus(bill3, "foo", BillStatus.FROZEN); billingController.setPlan(t1, PlanRegistryMock.paidPlan.id(), false, true); tester.controller().serviceRegistry().billingReporter().exportBill(billingDb.readBill(bill2).get(), "FOO", cloudTenant(t1)); + tester.controller().serviceRegistry().billingReporter().exportBill(billingDb.readBill(bill3).get(), "FOO", cloudTenant(t1)); var updates = maintainer.maintainInvoices(); - assertEquals(new InvoiceUpdate(0, 0, 1), updates); + assertEquals(new InvoiceUpdate(1, 0, 0), updates); + + assertTrue(billingDb.readBill(bill1).get().getExportedId().isEmpty()); var exportedBill = billingDb.readBill(bill2).get(); assertEquals("EXT-ID-123", exportedBill.getExportedId().get()); - assertTrue(billingDb.readBill(bill1).get().getExportedId().isEmpty()); + var lineItems = exportedBill.lineItems(); + assertEquals(1, lineItems.size()); + assertEquals("maintained", lineItems.get(0).id()); + + var frozenBill = billingDb.readBill(bill3).get(); + assertEquals("EXT-ID-123", frozenBill.getExportedId().get()); + assertEquals(0, frozenBill.lineItems().size()); + } private CloudTenant cloudTenant(TenantName tenantName) { diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/billing/BillingApiHandlerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/billing/BillingApiHandlerTest.java index 7f68fbf6909..f3147d2adde 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/billing/BillingApiHandlerTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/billing/BillingApiHandlerTest.java @@ -4,9 +4,11 @@ package com.yahoo.vespa.hosted.controller.restapi.billing; import com.yahoo.config.provision.SystemName; import com.yahoo.config.provision.TenantName; import com.yahoo.vespa.hosted.controller.api.integration.billing.Bill; +import com.yahoo.vespa.hosted.controller.api.integration.billing.BillStatus; import com.yahoo.vespa.hosted.controller.api.integration.billing.CollectionMethod; import com.yahoo.vespa.hosted.controller.api.integration.billing.MockBillingController; import com.yahoo.vespa.hosted.controller.api.integration.billing.PlanId; +import com.yahoo.vespa.hosted.controller.api.integration.billing.StatusHistory; import com.yahoo.vespa.hosted.controller.api.role.Role; import com.yahoo.vespa.hosted.controller.restapi.ContainerTester; import com.yahoo.vespa.hosted.controller.restapi.ControllerContainerCloudTest; @@ -26,12 +28,10 @@ import java.util.Optional; import java.util.Set; import java.util.TreeMap; -import static com.yahoo.application.container.handler.Request.Method.DELETE; import static com.yahoo.application.container.handler.Request.Method.GET; import static com.yahoo.application.container.handler.Request.Method.PATCH; import static com.yahoo.application.container.handler.Request.Method.POST; import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; /** * @author olaa @@ -152,14 +152,14 @@ public class BillingApiHandlerTest extends ControllerContainerCloudTest { void adding_new_status() { billingController.addBill(tenant, createBill(), true); - var requestBody = "{\"status\":\"DONE\"}"; + var requestBody = "{\"status\":\"CLOSED\"}"; var request = request("/billing/v1/invoice/id-1/status", POST) .data(requestBody) .roles(financeAdmin); tester.assertResponse(request, "{\"message\":\"Updated status of invoice id-1\"}"); var bill = billingController.getBillsForTenant(tenant).get(0); - assertEquals("DONE", bill.status()); + assertEquals(BillStatus.CLOSED, bill.status()); } @Test @@ -211,7 +211,7 @@ public class BillingApiHandlerTest extends ControllerContainerCloudTest { static Bill createBill() { var start = LocalDate.of(2020, 5, 23).atStartOfDay(ZoneOffset.UTC); var end = start.toLocalDate().plusDays(6).atStartOfDay(ZoneOffset.UTC); - var statusHistory = new Bill.StatusHistory(new TreeMap<>(Map.of(start, "OPEN"))); + var statusHistory = new StatusHistory(new TreeMap<>(Map.of(start, BillStatus.OPEN))); return new Bill( Bill.Id.of("id-1"), TenantName.defaultName(), |