From ecf509f311d288212233f6137cda5342f2faf884 Mon Sep 17 00:00:00 2001 From: Yusuf Murodov Date: Wed, 21 Feb 2024 16:38:31 +0500 Subject: [PATCH 1/3] Add holdingsCopyNumber and ItemsCopyNumber to rtac response --- ramls/batch-holdings.xsd | 3 ++- ramls/holdings.xsd | 2 ++ .../java/org/folio/edge/rtac/model/Holding.java | 11 +++++++++-- .../org/folio/edge/rtac/model/InstancesTest.java | 14 +++++++++++++- 4 files changed, 26 insertions(+), 4 deletions(-) diff --git a/ramls/batch-holdings.xsd b/ramls/batch-holdings.xsd index e395946..2e0edb8 100644 --- a/ramls/batch-holdings.xsd +++ b/ramls/batch-holdings.xsd @@ -30,7 +30,8 @@ - + + diff --git a/ramls/holdings.xsd b/ramls/holdings.xsd index 3a1461d..f08b95d 100644 --- a/ramls/holdings.xsd +++ b/ramls/holdings.xsd @@ -20,6 +20,8 @@ + + diff --git a/src/main/java/org/folio/edge/rtac/model/Holding.java b/src/main/java/org/folio/edge/rtac/model/Holding.java index 5548eb8..06d4708 100644 --- a/src/main/java/org/folio/edge/rtac/model/Holding.java +++ b/src/main/java/org/folio/edge/rtac/model/Holding.java @@ -34,6 +34,10 @@ public final class Holding { private final String temporaryLoanType; @JsonProperty("permanentLoanType") private final String permanentLoanType; + @JsonProperty("holdingsCopyNumber") + private final String holdingsCopyNumber; + @JsonProperty("itemCopyNumber") + private final String itemCopyNumber; @Override public boolean equals(Object o) { @@ -48,11 +52,14 @@ public boolean equals(Object o) { Objects.equals(tempLocation, holding.tempLocation) && Objects.equals(volume, holding.volume) && Objects.equals(temporaryLoanType, holding.temporaryLoanType) && - Objects.equals(permanentLoanType, holding.permanentLoanType); + Objects.equals(permanentLoanType, holding.permanentLoanType) && + Objects.equals(holdingsCopyNumber, holding.holdingsCopyNumber) && + Objects.equals(itemCopyNumber, holding.itemCopyNumber); } @Override public int hashCode() { - return Objects.hash(id, callNumber, location, status, dueDate, tempLocation, volume, temporaryLoanType, permanentLoanType); + return Objects.hash(id, callNumber, location, status, dueDate, tempLocation, volume, temporaryLoanType, permanentLoanType, + holdingsCopyNumber, itemCopyNumber); } } diff --git a/src/test/java/org/folio/edge/rtac/model/InstancesTest.java b/src/test/java/org/folio/edge/rtac/model/InstancesTest.java index f06c660..e32f4f8 100644 --- a/src/test/java/org/folio/edge/rtac/model/InstancesTest.java +++ b/src/test/java/org/folio/edge/rtac/model/InstancesTest.java @@ -41,6 +41,7 @@ public void setUp() throws Exception { .status("Item in place") .dueDate("") .volume("v.10:no.2") + .itemCopyNumber("101") .build(); Holding h2 = Holding.builder() @@ -48,14 +49,25 @@ public void setUp() throws Exception { .callNumber("PS3552.E796 D44x 1975") .location("LC General Collection Millersville University Library") .status("Item in place") + .holdingsCopyNumber("201") .dueDate("2018-04-23 12:00:00") .build(); + Holding h3 = Holding.builder() + .id("99712686103569") + .callNumber("PS3552.E796 D44x 1975") + .location("LC General Collection Millersville University Library") + .status("Item in place") + .itemCopyNumber("102") + .holdingsCopyNumber("202") + .dueDate("2018-04-23 12:00:00") + .build(); + instances = new Instances(); final var holdings = new Holdings(); holdings.setInstanceId(INSTANCE_ID); - holdings.setHoldings(List.of(h1, h2)); + holdings.setHoldings(List.of(h1, h2, h3)); instances.setHoldings(List.of(holdings)); SchemaFactory schemaFactory = SchemaFactory From 55b7cb0a26ae14e10e5c24c6c121b7101088f50b Mon Sep 17 00:00:00 2001 From: Yusuf Murodov Date: Mon, 26 Feb 2024 15:31:14 +0500 Subject: [PATCH 2/3] Fix tests --- src/main/java/org/folio/edge/rtac/model/Holding.java | 4 ++-- src/test/java/org/folio/edge/rtac/MainVerticleTest.java | 8 ++++++++ .../java/org/folio/edge/rtac/utils/RtacMockOkapi.java | 2 ++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/folio/edge/rtac/model/Holding.java b/src/main/java/org/folio/edge/rtac/model/Holding.java index 06d4708..450eb02 100644 --- a/src/main/java/org/folio/edge/rtac/model/Holding.java +++ b/src/main/java/org/folio/edge/rtac/model/Holding.java @@ -35,9 +35,9 @@ public final class Holding { @JsonProperty("permanentLoanType") private final String permanentLoanType; @JsonProperty("holdingsCopyNumber") - private final String holdingsCopyNumber; + public final String holdingsCopyNumber; @JsonProperty("itemCopyNumber") - private final String itemCopyNumber; + public final String itemCopyNumber; @Override public boolean equals(Object o) { diff --git a/src/test/java/org/folio/edge/rtac/MainVerticleTest.java b/src/test/java/org/folio/edge/rtac/MainVerticleTest.java index 9951832..60d3613 100644 --- a/src/test/java/org/folio/edge/rtac/MainVerticleTest.java +++ b/src/test/java/org/folio/edge/rtac/MainVerticleTest.java @@ -201,6 +201,8 @@ public void testRtacTitleFound(TestContext context) throws Exception { assertEquals("PS3552.E796 D44x 1975", holdingRecord.getString("callNumber")); assertEquals("Item in place", holdingRecord.getString("status")); assertEquals("v.5:no.2-6", holdingRecord.getString("volume")); + assertEquals("101", holdingRecord.getString("holdingsCopyNumber")); + assertEquals("201", holdingRecord.getString("itemCopyNumber")); } // Unsuccessful searches result in a 200 OK status with an empty element in the @@ -262,6 +264,10 @@ public void testRtacBatching(TestContext context) throws Exception { assertEquals("Item in place", secondHoldings.getString("status")); assertEquals("v.5:no.2-6", firstHoldings.getString("volume")); assertEquals("v.5:no.2-6", secondHoldings.getString("volume")); + assertEquals("101", firstHoldings.getString("holdingsCopyNumber")); + assertEquals("101", secondHoldings.getString("holdingsCopyNumber")); + assertEquals("201", firstHoldings.getString("itemCopyNumber")); + assertEquals("201", secondHoldings.getString("itemCopyNumber")); } @Test @@ -463,6 +469,8 @@ public void shouldRespondWithXMLWhenClientDoesNotStateAPreference() throws IOExc assertEquals("PS3552.E796 D44x 1975", holding.callNumber); assertEquals("Item in place", holding.status); assertEquals("v.5:no.2-6", holding.volume); + assertEquals("101", holding.holdingsCopyNumber); + assertEquals("201", holding.itemCopyNumber); } @Test diff --git a/src/test/java/org/folio/edge/rtac/utils/RtacMockOkapi.java b/src/test/java/org/folio/edge/rtac/utils/RtacMockOkapi.java index fd74f26..92e2365 100644 --- a/src/test/java/org/folio/edge/rtac/utils/RtacMockOkapi.java +++ b/src/test/java/org/folio/edge/rtac/utils/RtacMockOkapi.java @@ -103,6 +103,8 @@ public static Holdings getHoldings(String titleId) { .tempLocation("") .dueDate("") .volume("v.5:no.2-6") + .holdingsCopyNumber("101") + .itemCopyNumber("201") .build(); final var holdings = new Holdings(); From 8b4e2077f2cabdd892638bea4d346d6364909f81 Mon Sep 17 00:00:00 2001 From: Yusuf Murodov Date: Mon, 26 Feb 2024 15:41:33 +0500 Subject: [PATCH 3/3] Refactor holding class --- src/main/java/org/folio/edge/rtac/model/Holding.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/folio/edge/rtac/model/Holding.java b/src/main/java/org/folio/edge/rtac/model/Holding.java index 450eb02..58c0463 100644 --- a/src/main/java/org/folio/edge/rtac/model/Holding.java +++ b/src/main/java/org/folio/edge/rtac/model/Holding.java @@ -52,14 +52,11 @@ public boolean equals(Object o) { Objects.equals(tempLocation, holding.tempLocation) && Objects.equals(volume, holding.volume) && Objects.equals(temporaryLoanType, holding.temporaryLoanType) && - Objects.equals(permanentLoanType, holding.permanentLoanType) && - Objects.equals(holdingsCopyNumber, holding.holdingsCopyNumber) && - Objects.equals(itemCopyNumber, holding.itemCopyNumber); + Objects.equals(permanentLoanType, holding.permanentLoanType); } @Override public int hashCode() { - return Objects.hash(id, callNumber, location, status, dueDate, tempLocation, volume, temporaryLoanType, permanentLoanType, - holdingsCopyNumber, itemCopyNumber); + return Objects.hash(id, callNumber, location, status, dueDate, tempLocation, volume, temporaryLoanType, permanentLoanType); } }