diff --git a/src/main/java/org/folio/eusage/reports/api/CostPerUse.java b/src/main/java/org/folio/eusage/reports/api/CostPerUse.java index ee2cc82..a32bfbe 100644 --- a/src/main/java/org/folio/eusage/reports/api/CostPerUse.java +++ b/src/main/java/org/folio/eusage/reports/api/CostPerUse.java @@ -60,7 +60,9 @@ static JsonObject titlesToJsonObject(RowSet rowSet, Periods usePeriods) { String poLineNumber = row.getString("polinenumber"); String payKey = kbId + "," + poLineNumber + "," + fiscalYearRange + "," + subscriptionDateRange; - LocalDate publicationDate = row.getLocalDate("publicationdate"); + + LocalDate publicationDate = row.getLocalDate("publicationdate") == null + ? LocalDate.of(1,1,1) : row.getLocalDate("publicationdate"); String pubPeriodLabel = Periods.periodLabelFloor(publicationDate, 12,"nopub"); if (titlesInSubscription.containsKey(payKey) && "nopub".equals(pubPeriodLabel)) { return; @@ -88,7 +90,8 @@ static JsonObject titlesToJsonObject(RowSet rowSet, Periods usePeriods) { if (subscriptionPeriod == null) { return; } - LocalDate publicationDate = row.getLocalDate("publicationdate"); + LocalDate publicationDate = row.getLocalDate("publicationdate") == null + ? LocalDate.of(1,1,1) : row.getLocalDate("publicationdate"); String pubPeriodLabel = Periods.periodLabelFloor(publicationDate, 12,"nopub"); String poLineNumber = row.getString("polinenumber"); UUID kbId = row.getUUID("kbid"); diff --git a/src/test/java/org/folio/eusage/reports/api/EusageReportsApiTest.java b/src/test/java/org/folio/eusage/reports/api/EusageReportsApiTest.java index fb9a477..f36e73d 100644 --- a/src/test/java/org/folio/eusage/reports/api/EusageReportsApiTest.java +++ b/src/test/java/org/folio/eusage/reports/api/EusageReportsApiTest.java @@ -927,7 +927,7 @@ public void costPerUse63(TestContext context) { ArgumentCaptor body = ArgumentCaptor.forClass(String.class); verify(routingContext.response()).end(body.capture()); JsonObject json = new JsonObject(body.getValue()); - assertThat(json.getJsonArray("items").size(), is(4)); + assertThat(json.getJsonArray("items").size(), is(6)); })); } @@ -1264,33 +1264,33 @@ public void costPerUseWithRoutingContext1(TestContext context) { contains(0.92, 1.02, 1.02, null, null)); assertThat(json.getDouble("amountPaidTotal"), is(91.67)); // 5/12 * 220 assertThat(json.getDouble("amountEncumberedTotal"), is(83.33)); - assertThat(json.getJsonArray("items").size(), is(3)); + assertThat(json.getJsonArray("items").size(), is(5)); assertThat(json.getJsonArray("items").getJsonObject(0).getString("kbId"), is(t11)); assertThat(json.getJsonArray("items").getJsonObject(0).getBoolean("derivedTitle"), is(false)); assertThat(json.getJsonArray("items").getJsonObject(0).getLong("totalItemRequests"), is(3L)); assertThat(json.getJsonArray("items").getJsonObject(0).getLong("uniqueItemRequests"), is(2L)); - assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("amountEncumbered"), is(20.83)); - assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("amountPaid"), is(22.92)); + assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("amountEncumbered"), is(13.89)); + assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("amountPaid"), is(15.28)); assertThat(json.getJsonArray("items").getJsonObject(0).getString("publicationYear"), is("1999")); - assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("costPerTotalRequest"), is(7.64)); - assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("costPerUniqueRequest"), is(11.46)); + assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("costPerTotalRequest"), is(5.09)); + assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("costPerUniqueRequest"), is(7.64)); assertThat(json.getJsonArray("items").getJsonObject(1).getString("kbId"), is(t11)); assertThat(json.getJsonArray("items").getJsonObject(1).getBoolean("derivedTitle"), is(false)); assertThat(json.getJsonArray("items").getJsonObject(1).getLong("totalItemRequests"), is(44L)); assertThat(json.getJsonArray("items").getJsonObject(1).getLong("uniqueItemRequests"), is(16L)); - assertThat(json.getJsonArray("items").getJsonObject(1).getDouble("amountEncumbered"), is(20.83)); - assertThat(json.getJsonArray("items").getJsonObject(1).getDouble("amountPaid"), is(22.92)); + assertThat(json.getJsonArray("items").getJsonObject(1).getDouble("amountEncumbered"), is(13.89)); + assertThat(json.getJsonArray("items").getJsonObject(1).getDouble("amountPaid"), is(15.28)); assertThat(json.getJsonArray("items").getJsonObject(1).getString("publicationYear"), is("2000")); - assertThat(json.getJsonArray("items").getJsonObject(1).getDouble("costPerTotalRequest"), is(0.52)); - assertThat(json.getJsonArray("items").getJsonObject(1).getDouble("costPerUniqueRequest"), is(1.43)); - assertThat(json.getJsonArray("items").getJsonObject(2).getString("kbId"), is(t12)); - assertThat(json.getJsonArray("items").getJsonObject(2).getBoolean("derivedTitle"), is(false)); - assertThat(json.getJsonArray("items").getJsonObject(2).getLong("totalItemRequests"), is(38L)); - assertThat(json.getJsonArray("items").getJsonObject(2).getLong("uniqueItemRequests"), is(29L)); - assertThat(json.getJsonArray("items").getJsonObject(2).getDouble("amountEncumbered"), is(41.67)); - assertThat(json.getJsonArray("items").getJsonObject(2).getDouble("amountPaid"), is(45.83)); - assertThat(json.getJsonArray("items").getJsonObject(2).getDouble("costPerTotalRequest"), is(1.21)); - assertThat(json.getJsonArray("items").getJsonObject(2).getDouble("costPerUniqueRequest"), is(1.58)); + assertThat(json.getJsonArray("items").getJsonObject(1).getDouble("costPerTotalRequest"), is(0.35)); + assertThat(json.getJsonArray("items").getJsonObject(1).getDouble("costPerUniqueRequest"), is(0.95)); + assertThat(json.getJsonArray("items").getJsonObject(3).getString("kbId"), is(t12)); + assertThat(json.getJsonArray("items").getJsonObject(3).getBoolean("derivedTitle"), is(false)); + assertThat(json.getJsonArray("items").getJsonObject(3).getLong("totalItemRequests"), is(38L)); + assertThat(json.getJsonArray("items").getJsonObject(3).getLong("uniqueItemRequests"), is(29L)); + assertThat(json.getJsonArray("items").getJsonObject(3).getDouble("amountEncumbered"), is(20.83)); + assertThat(json.getJsonArray("items").getJsonObject(3).getDouble("amountPaid"), is(22.92)); + assertThat(json.getJsonArray("items").getJsonObject(3).getDouble("costPerTotalRequest"), is(0.60)); + assertThat(json.getJsonArray("items").getJsonObject(3).getDouble("costPerUniqueRequest"), is(0.79)); })); } @@ -1414,16 +1414,16 @@ public void costPerUseWithRoutingContext4(TestContext context) { assertThat((List) json.getJsonArray("costByPeriod").getList(), contains(0.0, 34.44, 34.44, 0.0)); JsonArray items = json.getJsonArray("items"); - assertThat(items.size(), is(3)); + assertThat(items.size(), is(5)); assertThat(items.getJsonObject(0).getBoolean("derivedTitle"), is(true)); assertThat(items.getJsonObject(1).getBoolean("derivedTitle"), is(true)); assertThat(items.getJsonObject(2).getBoolean("derivedTitle"), is(true)); assertThat(items.getJsonObject(0).getDouble("costPerTotalRequest"), is(nullValue())); - assertThat(items.getJsonObject(1).getDouble("costPerTotalRequest"), is(0.63)); - assertThat(items.getJsonObject(2).getDouble("costPerTotalRequest"), is(2.35)); + assertThat(items.getJsonObject(1).getDouble("costPerTotalRequest"), is(0.42)); + assertThat(items.getJsonObject(3).getDouble("costPerTotalRequest"), is(1.17)); assertThat(items.getJsonObject(0).getDouble("costPerUniqueRequest"), is(nullValue())); - assertThat(items.getJsonObject(1).getDouble("costPerUniqueRequest"), is(1.99)); - assertThat(items.getJsonObject(2).getDouble("costPerUniqueRequest"), is(3.69)); + assertThat(items.getJsonObject(1).getDouble("costPerUniqueRequest"), is(1.32)); + assertThat(items.getJsonObject(3).getDouble("costPerUniqueRequest"), is(1.85)); })); } @@ -1451,38 +1451,38 @@ public void costPerUseAccessCountPeriod1Y(TestContext context) { contains(3.73)); assertThat(json.getDouble("amountPaidTotal"), is(220.0)); assertThat(json.getDouble("amountEncumberedTotal"), is(200.0)); - assertThat(json.getJsonArray("items").size(), is(4)); + assertThat(json.getJsonArray("items").size(), is(6)); assertThat(json.getJsonArray("items").getJsonObject(0).getString("kbId"), is(t11)); assertThat(json.getJsonArray("items").getJsonObject(0).getLong("totalItemRequests"), is(5L)); assertThat(json.getJsonArray("items").getJsonObject(0).getLong("uniqueItemRequests"), is(3L)); - assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("amountEncumbered"), is(50.0)); - assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("amountPaid"), is(55.0)); + assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("amountEncumbered"), is(33.33)); + assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("amountPaid"), is(36.67)); assertThat(json.getJsonArray("items").getJsonObject(0).getString("publicationYear"), is("1999")); - assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("costPerTotalRequest"), is(11.0)); - assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("costPerUniqueRequest"), is(18.33)); + assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("costPerTotalRequest"), is(7.33)); + assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("costPerUniqueRequest"), is(12.22)); assertThat(json.getJsonArray("items").getJsonObject(1).getLong("totalItemRequests"), is(44L)); assertThat(json.getJsonArray("items").getJsonObject(1).getLong("uniqueItemRequests"), is(16L)); - assertThat(json.getJsonArray("items").getJsonObject(1).getDouble("amountEncumbered"), is(50.0)); - assertThat(json.getJsonArray("items").getJsonObject(1).getDouble("amountPaid"), is(55.0)); + assertThat(json.getJsonArray("items").getJsonObject(1).getDouble("amountEncumbered"), is(33.33)); + assertThat(json.getJsonArray("items").getJsonObject(1).getDouble("amountPaid"), is(36.67)); assertThat(json.getJsonArray("items").getJsonObject(1).getString("publicationYear"), is("2000")); - assertThat(json.getJsonArray("items").getJsonObject(1).getDouble("costPerTotalRequest"), is(1.25)); - assertThat(json.getJsonArray("items").getJsonObject(1).getDouble("costPerUniqueRequest"), is(3.44)); - assertThat(json.getJsonArray("items").getJsonObject(2).getString("kbId"), is(t12)); - assertThat(json.getJsonArray("items").getJsonObject(2).getLong("totalItemRequests"), is(0L)); - assertThat(json.getJsonArray("items").getJsonObject(2).getLong("uniqueItemRequests"), is(0L)); - assertThat(json.getJsonArray("items").getJsonObject(2).getDouble("amountEncumbered"), is(50.0)); - assertThat(json.getJsonArray("items").getJsonObject(2).getDouble("amountPaid"), is(55.0)); - assertThat(json.getJsonArray("items").getJsonObject(2).getString("publicationYear"), is("1843")); - assertThat(json.getJsonArray("items").getJsonObject(2).getDouble("costPerTotalRequest"), is(nullValue())); - assertThat(json.getJsonArray("items").getJsonObject(2).getDouble("costPerUniqueRequest"), is(nullValue())); + assertThat(json.getJsonArray("items").getJsonObject(1).getDouble("costPerTotalRequest"), is(0.83)); + assertThat(json.getJsonArray("items").getJsonObject(1).getDouble("costPerUniqueRequest"), is(2.29)); assertThat(json.getJsonArray("items").getJsonObject(3).getString("kbId"), is(t12)); - assertThat(json.getJsonArray("items").getJsonObject(3).getLong("totalItemRequests"), is(50L)); - assertThat(json.getJsonArray("items").getJsonObject(3).getLong("uniqueItemRequests"), is(40L)); - assertThat(json.getJsonArray("items").getJsonObject(3).getDouble("amountEncumbered"), is(50.0)); - assertThat(json.getJsonArray("items").getJsonObject(3).getDouble("amountPaid"), is(55.0)); - assertThat(json.getJsonArray("items").getJsonObject(3).getString("publicationYear"), is("2010")); - assertThat(json.getJsonArray("items").getJsonObject(3).getDouble("costPerTotalRequest"), is(1.1)); - assertThat(json.getJsonArray("items").getJsonObject(3).getDouble("costPerUniqueRequest"), is(1.38)); + assertThat(json.getJsonArray("items").getJsonObject(3).getLong("totalItemRequests"), is(0L)); + assertThat(json.getJsonArray("items").getJsonObject(3).getLong("uniqueItemRequests"), is(0L)); + assertThat(json.getJsonArray("items").getJsonObject(2).getDouble("amountEncumbered"), is(33.33)); + assertThat(json.getJsonArray("items").getJsonObject(2).getDouble("amountPaid"), is(36.67)); + assertThat(json.getJsonArray("items").getJsonObject(3).getString("publicationYear"), is("1843")); + assertThat(json.getJsonArray("items").getJsonObject(3).getDouble("costPerTotalRequest"), is(nullValue())); + assertThat(json.getJsonArray("items").getJsonObject(3).getDouble("costPerUniqueRequest"), is(nullValue())); + assertThat(json.getJsonArray("items").getJsonObject(4).getString("kbId"), is(t12)); + assertThat(json.getJsonArray("items").getJsonObject(4).getLong("totalItemRequests"), is(50L)); + assertThat(json.getJsonArray("items").getJsonObject(4).getLong("uniqueItemRequests"), is(40L)); + assertThat(json.getJsonArray("items").getJsonObject(4).getDouble("amountEncumbered"), is(33.33)); + assertThat(json.getJsonArray("items").getJsonObject(4).getDouble("amountPaid"), is(36.67)); + assertThat(json.getJsonArray("items").getJsonObject(4).getString("publicationYear"), is("2010")); + assertThat(json.getJsonArray("items").getJsonObject(4).getDouble("costPerTotalRequest"), is(0.73)); + assertThat(json.getJsonArray("items").getJsonObject(4).getDouble("costPerUniqueRequest"), is(0.92)); })); } @@ -1510,23 +1510,23 @@ public void costPerUseAccessCountPeriod5Y(TestContext context) { contains(null, 3.73)); assertThat(json.getDouble("amountPaidTotal"), is(220.0)); assertThat(json.getDouble("amountEncumberedTotal"), is(200.0)); - assertThat(json.getJsonArray("items").size(), is(4)); + assertThat(json.getJsonArray("items").size(), is(6)); assertThat(json.getJsonArray("items").getJsonObject(0).getString("kbId"), is(t11)); assertThat(json.getJsonArray("items").getJsonObject(0).getLong("totalItemRequests"), is(5L)); assertThat(json.getJsonArray("items").getJsonObject(0).getLong("uniqueItemRequests"), is(3L)); - assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("amountEncumbered"), is(50.0)); - assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("amountPaid"), is(55.0)); + assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("amountEncumbered"), is(33.33)); + assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("amountPaid"), is(36.67)); assertThat(json.getJsonArray("items").getJsonObject(0).getString("publicationYear"), is("1999")); - assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("costPerTotalRequest"), is(11.0)); - assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("costPerUniqueRequest"), is(18.33)); - assertThat(json.getJsonArray("items").getJsonObject(2).getString("kbId"), is(t12)); - assertThat(json.getJsonArray("items").getJsonObject(2).getLong("totalItemRequests"), is(0L)); - assertThat(json.getJsonArray("items").getJsonObject(2).getLong("uniqueItemRequests"), is(0L)); - assertThat(json.getJsonArray("items").getJsonObject(2).getDouble("amountEncumbered"), is(50.0)); - assertThat(json.getJsonArray("items").getJsonObject(2).getDouble("amountPaid"), is(55.0)); - assertThat(json.getJsonArray("items").getJsonObject(2).getString("publicationYear"), is("1843")); - assertThat(json.getJsonArray("items").getJsonObject(2).getDouble("costPerTotalRequest"), is(nullValue())); - assertThat(json.getJsonArray("items").getJsonObject(2).getDouble("costPerUniqueRequest"), is(nullValue())); + assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("costPerTotalRequest"), is(7.33)); + assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("costPerUniqueRequest"), is(12.22)); + assertThat(json.getJsonArray("items").getJsonObject(3).getString("kbId"), is(t12)); + assertThat(json.getJsonArray("items").getJsonObject(3).getLong("totalItemRequests"), is(0L)); + assertThat(json.getJsonArray("items").getJsonObject(3).getLong("uniqueItemRequests"), is(0L)); + assertThat(json.getJsonArray("items").getJsonObject(3).getDouble("amountEncumbered"), is(33.33)); + assertThat(json.getJsonArray("items").getJsonObject(3).getDouble("amountPaid"), is(36.67)); + assertThat(json.getJsonArray("items").getJsonObject(3).getString("publicationYear"), is("1843")); + assertThat(json.getJsonArray("items").getJsonObject(3).getDouble("costPerTotalRequest"), is(nullValue())); + assertThat(json.getJsonArray("items").getJsonObject(3).getDouble("costPerUniqueRequest"), is(nullValue())); })); } @@ -1615,39 +1615,42 @@ public void costPerFormatAllCsv(TestContext context) { context.assertEquals("Year of publication", header.get(5)); context.assertEquals("Order type", header.get(6)); context.assertEquals("Totals", totals.get(0)); - context.assertEquals(6, records.size()); + context.assertEquals(8, records.size()); context.assertEquals("Title 21", records.get(2).get(0)); - context.assertEquals("Title 22", records.get(3).get(0)); - context.assertEquals("Title 31", records.get(4).get(0)); - context.assertEquals("Title 32", records.get(5).get(0)); + context.assertEquals("Title 22", records.get(4).get(0)); + context.assertEquals("Title 31", records.get(5).get(0)); + context.assertEquals("Title 32", records.get(7).get(0)); context.assertEquals("2010", records.get(2).get(5)); - context.assertEquals("", records.get(3).get(5)); + context.assertEquals("0001", records.get(3).get(5)); context.assertEquals("0001", records.get(4).get(5)); - context.assertEquals("2010", records.get(5).get(5)); + context.assertEquals("2010", records.get(6).get(5)); context.assertEquals("Purchase order line", header.get(7)); context.assertEquals("p2", records.get(2).get(7)); context.assertEquals("p2", records.get(3).get(7)); context.assertEquals("Invoice number", header.get(8)); context.assertEquals("t21-i2", records.get(2).get(8)); - context.assertEquals("t22-i2", records.get(3).get(8)); + context.assertEquals("t22-i2", records.get(4).get(8)); context.assertEquals("Cost per request - total", header.get(17)); context.assertEquals("1.47", totals.get(17)); - /* Title 21 + /* Title 21, two yop entries including the one without any yop Cost: 210 - 100 = 110 = 9.16/month. Two months: 18.33 Usage: 05: 40 06: 2 = 42 - Cost per request: 18.33/42 = 0.44 + Cost per request: 18.33/42 = 0.44 / 2 (titles) = 0.22 */ - context.assertEquals("0.44", records.get(2).get(17)); - context.assertEquals("0.88", records.get(4).get(17)); - context.assertEquals("17.5", records.get(5).get(17)); + context.assertEquals("0.22", records.get(2).get(17)); + context.assertEquals("0.88", records.get(5).get(17)); + context.assertEquals("8.75", records.get(6).get(17)); context.assertEquals("Cost per request - unique", header.get(18)); context.assertEquals("2.94", totals.get(18)); /* - Title 21, unique requests 21, cost/req 18.33/21 + Title 21, unique requests 21, cost/req 18.33/21 = 0.87 / 2 (titles) = 0.44 */ - context.assertEquals("0.87", records.get(2).get(18)); - context.assertEquals("1.75", records.get(4).get(18)); - context.assertEquals("35.0", records.get(5).get(18)); + context.assertEquals("0.44", records.get(2).get(18)); + context.assertEquals("1.75", records.get(5).get(18)); + /* + Title 32, YoP: 2010,None, Costs 35 = 17.5 for each, One use of 2010 -> cost per use 17.5 + */ + context.assertEquals("17.5", records.get(6).get(18)); } catch (IOException e) { context.fail(e); } @@ -1680,7 +1683,7 @@ public void costPerUseFormatBookCsv(TestContext context) { context.assertEquals("ISBN", header.get(4)); context.assertEquals("Year of publication", header.get(5)); context.assertEquals("Order type", header.get(6)); - context.assertEquals(4, records.size()); + context.assertEquals(5, records.size()); context.assertEquals("Title 31", records.get(2).get(0)); context.assertEquals("Title 32", records.get(3).get(0)); context.assertEquals("Cost per request - total", header.get(17)); @@ -1718,11 +1721,11 @@ public void costPerUseFormatJournalCsv(TestContext context) { context.assertEquals("ISBN", header.get(4)); context.assertEquals("Year of publication", header.get(5)); context.assertEquals("Order type", header.get(6)); - context.assertEquals(4, records.size()); + context.assertEquals(5, records.size()); context.assertEquals("Title 21", records.get(2).get(0)); context.assertEquals("42", records.get(2).get(15)); context.assertEquals("21", records.get(2).get(16)); - context.assertEquals("Title 22", records.get(3).get(0)); + context.assertEquals("Title 22", records.get(4).get(0)); context.assertEquals("", records.get(3).get(15)); context.assertEquals("", records.get(3).get(16)); context.assertEquals("Cost per request - total", header.get(17)); @@ -1756,7 +1759,7 @@ public void costPerUseFormatJournalJson(TestContext context) { contains(0.46, 9.17)); assertThat(json.getDouble("amountPaidTotal"), is(53.33)); assertThat(json.getDouble("amountEncumberedTotal"), is(100.00)); - assertThat(json.getJsonArray("items").size(), is(2)); + assertThat(json.getJsonArray("items").size(), is(3)); assertThat(json.getJsonArray("items").getJsonObject(0).getString("kbId"), is(t21)); assertThat(json.getJsonArray("items").getJsonObject(0).getJsonArray("poLineIDs"), is(new JsonArray().add("p2"))); assertThat(json.getJsonArray("items").getJsonObject(0).getJsonArray("invoiceNumbers"), is(new JsonArray().add("t21-i2"))); @@ -1764,17 +1767,17 @@ public void costPerUseFormatJournalJson(TestContext context) { assertThat(json.getJsonArray("items").getJsonObject(0).getString("fiscalDateEnd"), is("2020-12-31")); assertThat(json.getJsonArray("items").getJsonObject(0).getLong("totalItemRequests"), is(42L)); assertThat(json.getJsonArray("items").getJsonObject(0).getLong("uniqueItemRequests"), is(21L)); - assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("amountEncumbered"), is(66.67)); - assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("amountPaid"), is(18.33)); - assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("costPerTotalRequest"), is(0.44)); - assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("costPerUniqueRequest"), is(0.87)); - assertThat(json.getJsonArray("items").getJsonObject(1).getString("kbId"), is(t22)); - assertThat(json.getJsonArray("items").getJsonObject(1).getJsonArray("poLineIDs"), is(new JsonArray().add("p2"))); - assertThat(json.getJsonArray("items").getJsonObject(1).getJsonArray("invoiceNumbers"), is(new JsonArray().add("t22-i2"))); - assertThat(json.getJsonArray("items").getJsonObject(1).getString("fiscalDateStart"), is("2020-01-01")); - assertThat(json.getJsonArray("items").getJsonObject(1).getString("fiscalDateEnd"), is("2020-12-31")); - assertThat(json.getJsonArray("items").getJsonObject(1).getDouble("amountEncumbered"), is(33.33)); - assertThat(json.getJsonArray("items").getJsonObject(1).getDouble("amountPaid"), is(35.0)); + assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("amountEncumbered"), is(33.33)); + assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("amountPaid"), is(9.17)); + assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("costPerTotalRequest"), is(0.22)); + assertThat(json.getJsonArray("items").getJsonObject(0).getDouble("costPerUniqueRequest"), is(0.44)); + assertThat(json.getJsonArray("items").getJsonObject(2).getString("kbId"), is(t22)); + assertThat(json.getJsonArray("items").getJsonObject(2).getJsonArray("poLineIDs"), is(new JsonArray().add("p2"))); + assertThat(json.getJsonArray("items").getJsonObject(2).getJsonArray("invoiceNumbers"), is(new JsonArray().add("t22-i2"))); + assertThat(json.getJsonArray("items").getJsonObject(2).getString("fiscalDateStart"), is("2020-01-01")); + assertThat(json.getJsonArray("items").getJsonObject(2).getString("fiscalDateEnd"), is("2020-12-31")); + assertThat(json.getJsonArray("items").getJsonObject(2).getDouble("amountEncumbered"), is(33.33)); + assertThat(json.getJsonArray("items").getJsonObject(2).getDouble("amountPaid"), is(35.0)); })); }