private void getRecords( final int maxRecords, final int startPosition, final int totalResults, final int expectedNext, final int expectedReturn) throws JAXBException, UnsupportedEncodingException { XStream xstream = createXStream(CswConstants.GET_RECORDS_RESPONSE); GetRecordsType query = new GetRecordsType(); query.setMaxRecords(BigInteger.valueOf(maxRecords)); query.setStartPosition(BigInteger.valueOf(startPosition)); CswRecordCollection collection = createCswRecordCollection(query, totalResults); collection.setStartPosition(startPosition); String xml = xstream.toXML(collection); JAXBElement<GetRecordsResponseType> jaxb = (JAXBElement<GetRecordsResponseType>) getJaxBContext() .createUnmarshaller() .unmarshal(new ByteArrayInputStream(xml.getBytes("UTF-8"))); GetRecordsResponseType response = jaxb.getValue(); assertThat( response.getSearchResults().getNumberOfRecordsMatched().intValue(), equalTo(totalResults)); assertThat( response.getSearchResults().getNumberOfRecordsReturned().intValue(), equalTo(expectedReturn)); // assertThat(response.getSearchResults().getAbstractRecord().size(), // equalTo(expectedReturn)); assertThat(response.getSearchResults().getNextRecord().intValue(), equalTo(expectedNext)); }