<xs:element name="lendersAuthorizer" type="xs:string"/>\r
<xs:element name="lendersAuthorizationDate" type="xs:string"/>\r
<xs:element name="lendersContact" type="xs:string"/>\r
- \r
- <!-- The three fields below were added as scalars specifically for release 0.7. -->\r
- <!-- These fields will be removed, to be replaced by sub-loans, in a future release. -->\r
- <xs:element name="loanedObjectStatus" type="xs:string"/>\r
- <xs:element name="loanedObjectStatusDate" type="xs:string"/>\r
- <xs:element name="loanedObjectStatusNote" type="xs:string"/>\r
+\r
+ <xs:element name="loanedObjectStatusGroupList" type="loanedObjectStatusGroupList"/>\r
\r
<xs:element name="loanOutDate" type="xs:string"/>\r
<xs:element name="loanReturnDate" type="xs:string"/>\r
<xs:element name="specialConditionsOfLoan" type="xs:string"/>\r
<xs:element name="loanOutNote" type="xs:string"/>\r
<xs:element name="loanPurpose" type="xs:string"/>\r
+\r
+ <xs:complexType name="loanedObjectStatusGroupList">\r
+ <xs:sequence>\r
+ <xs:element name="loanedObjectStatusGroup" type="loanedObjectStatusGroup" minOccurs="0" maxOccurs="unbounded"/>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
+\r
+ <xs:complexType name="loanedObjectStatusGroup">\r
+ <xs:sequence>\r
+ <xs:element name="loanedObjectStatus" type="xs:string"/>\r
+ <xs:element name="loanedObjectStatusDate" type="xs:string"/>\r
+ <xs:element name="loanedObjectStatusNote" type="xs:string"/>\r
+ </xs:sequence>\r
+ </xs:complexType>\r
\r
</xs:schema>\r
import org.collectionspace.services.client.CollectionSpaceClient;
import org.collectionspace.services.client.LoanoutClient;
import org.collectionspace.services.jaxb.AbstractCommonList;
+import org.collectionspace.services.loanout.LoanedObjectStatusGroup;
+import org.collectionspace.services.loanout.LoanedObjectStatusGroupList;
import org.collectionspace.services.loanout.LoansoutCommon;
import org.collectionspace.services.loanout.LoansoutCommonList;
LoansoutCommon loanout = (LoansoutCommon) extractPart(input,
client.getCommonPartName(), LoansoutCommon.class);
Assert.assertNotNull(loanout);
+ Assert.assertNotNull(loanout.getLoanOutNumber());
+ LoanedObjectStatusGroupList statusGroupList = loanout.getLoanedObjectStatusGroupList();
+ Assert.assertNotNull(statusGroupList);
+ List<LoanedObjectStatusGroup> statusGroups = statusGroupList.getLoanedObjectStatusGroup();
+ Assert.assertNotNull(statusGroups);
+ Assert.assertTrue(statusGroups.size() > 0);
+ LoanedObjectStatusGroup statusGroup = statusGroups.get(0);
+ Assert.assertNotNull(statusGroup);
+ Assert.assertNotNull(statusGroup.getLoanedObjectStatus());
}
// Failure outcomes
logger.debug("to be updated object");
logger.debug(objectAsXmlString(loanout, LoansoutCommon.class));
}
+ LoanedObjectStatusGroupList statusGroupList = loanout.getLoanedObjectStatusGroupList();
+ Assert.assertNotNull(statusGroupList);
+ List<LoanedObjectStatusGroup> statusGroups = statusGroupList.getLoanedObjectStatusGroup();
+ Assert.assertNotNull(statusGroups);
+ Assert.assertTrue(statusGroups.size() > 0);
+ LoanedObjectStatusGroup statusGroup = statusGroups.get(0);
+ Assert.assertNotNull(statusGroup);
+ String loanedObjectStatus = statusGroup.getLoanedObjectStatus();
+ Assert.assertNotNull(loanedObjectStatus);
+ String updatedLoanedObjectStatus = "updated-" + loanedObjectStatus;
+ statusGroups.get(0).setLoanedObjectStatus(updatedLoanedObjectStatus);
+ loanout.setLoanedObjectStatusGroupList(statusGroupList);
+
// Submit the request to the service and store the response.
MultipartOutput output = new MultipartOutput();
OutputPart commonPart = output.addPart(loanout, MediaType.APPLICATION_XML_TYPE);
loanout.getLoanReturnDate(),
"Data in updated object did not match submitted data.");
+ statusGroupList = updatedLoanout.getLoanedObjectStatusGroupList();
+ Assert.assertNotNull(statusGroupList);
+ statusGroups = statusGroupList.getLoanedObjectStatusGroup();
+ Assert.assertNotNull(statusGroups);
+ Assert.assertTrue(statusGroups.size() > 0);
+ Assert.assertNotNull(statusGroups.get(0));
+ Assert.assertEquals(updatedLoanedObjectStatus,
+ statusGroups.get(0).getLoanedObjectStatus(),
+ "Data in updated object did not match submitted data.");
+
}
// Failure outcomes
loanout.setBorrowersContact(
"urn:cspace:org.collectionspace.demo:personauthority:name(TestPersonAuth):person:name(Chris Contact)'Chris Contact'");
loanout.setLoanPurpose("Allow people in cold climes to share the magic of Surfboards of the 1960s.");
+ LoanedObjectStatusGroupList statusGroupList = new LoanedObjectStatusGroupList();
+ List<LoanedObjectStatusGroup> statusGroups = statusGroupList.getLoanedObjectStatusGroup();
+ LoanedObjectStatusGroup statusGroup = new LoanedObjectStatusGroup();
+ statusGroup.setLoanedObjectStatus("returned");
+ statusGroup.setLoanedObjectStatusNote("Left under the front mat.");
+ statusGroups.add(statusGroup);
+ loanout.setLoanedObjectStatusGroupList(statusGroupList);
MultipartOutput multipart = new MultipartOutput();
OutputPart commonPart =
multipart.addPart(loanout, MediaType.APPLICATION_XML_TYPE);
<xs:element name="lendersAuthorizationDate" type="xs:string"/>
<xs:element name="lendersContact" type="xs:string"/>
- <!-- The three fields below were added as scalars specifically for release 0.7. -->
- <!-- These fields will be removed, to be replaced by sub-loans, in a future release. -->
- <xs:element name="loanedObjectStatus" type="xs:string"/>
- <xs:element name="loanedObjectStatusDate" type="xs:string"/>
- <xs:element name="loanedObjectStatusNote" type="xs:string"/>
-
+ <xs:element name="loanedObjectStatusGroupList" type="loanedObjectStatusGroupList"/>
+
<xs:element name="loanOutDate" type="xs:string"/>
<xs:element name="loanReturnDate" type="xs:string"/>
<xs:element name="loanRenewalApplicationDate" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
+
+ <xs:complexType name="loanedObjectStatusGroupList">
+ <xs:sequence>
+ <xs:element name="loanedObjectStatusGroup" type="loanedObjectStatusGroup" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="loanedObjectStatusGroup">
+ <xs:sequence>
+ <xs:element name="loanedObjectStatus" type="xs:string"/>
+ <xs:element name="loanedObjectStatusDate" type="xs:string"/>
+ <xs:element name="loanedObjectStatusNote" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
<!-- This is the base class for paginated lists -->
<xs:complexType name="abstractCommonList">