diff options
author | gjoranv <gjoranv@gmail.com> | 2023-10-30 13:27:36 +0100 |
---|---|---|
committer | gjoranv <gjoranv@gmail.com> | 2023-10-30 13:27:36 +0100 |
commit | 5e33b72e79fbea8b0cb85945ff7104eb2b0417df (patch) | |
tree | f80c6d084628b2d5a5ea7a180e860f3cb539f656 | |
parent | 1dd6e2d1f9de204ab341ffcaec53ceffb5696955 (diff) |
Add test that re-exports a bill that was earlier deleted in the external system.
-rw-r--r-- | controller-server/src/test/java/com/yahoo/vespa/hosted/controller/maintenance/BillingReportMaintainerTest.java | 29 |
1 files changed, 29 insertions, 0 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 91e08fb168e..8d1848539f0 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 @@ -113,6 +113,35 @@ public class BillingReportMaintainerTest { assertEquals(0, updates.size()); } + @Test + void it_is_allowed_to_re_export_bills_whose_invoice_has_been_deleted_in_the_external_system() { + var t1 = tester.createTenant("t1"); + 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, "exported-then-deleted"); + + var reporter = (BillingReporterMock)tester.controller().serviceRegistry().billingReporter(); + + // Export the bill, then delete it in the external system + reporter.exportBill(billingDb.readBill(bill1).get(), "FOO", cloudTenant(t1)); + maintainer.maintainInvoices(); + reporter.deleteExportedBill(bill1); + maintainer.maintainInvoices(); + + // Ensure it is currently ignored by the maintainer + var updates = maintainer.maintainInvoices(); + assertEquals(0, updates.size()); + + // Re-export the bill and verify that it is maintained again + reporter.exportBill(billingDb.readBill(bill1).get(), "FOO", cloudTenant(t1)); + updates = maintainer.maintainInvoices(); + assertEquals(1, updates.size()); + assertEquals(ModifiableInvoiceUpdate.class, updates.get(0).getClass()); + } + private CloudTenant cloudTenant(TenantName tenantName) { return tester.controller().tenants().require(tenantName, CloudTenant.class); } |