1515
1616package com .spectralogic .ds3client ;
1717
18+ import com .google .common .collect .ImmutableMap ;
1819import com .google .common .collect .Lists ;
1920import com .google .common .collect .Multimap ;
2021import com .google .common .collect .TreeMultimap ;
@@ -204,9 +205,13 @@ public void getObjectsSpectraS3() throws IOException, SignatureException, ParseE
204205 final String stringResponse = "<Data>" +
205206 "<S3Object><BucketId>a24d14f3-e2f0-4bfb-ab71-f99d5ef43745</BucketId><CreationDate>2015-09-21T20:06:47.694Z</CreationDate><Id>e37c3ce0-12aa-4f54-87e3-42532aca0e5e</Id><Name>beowulf.txt</Name><Type>DATA</Type><Version>1</Version></S3Object><S3Object><BucketId>a24d14f3-e2f0-4bfb-ab71-f99d5ef43745</BucketId><CreationDate>2015-09-21T20:06:47.779Z</CreationDate><Id>dc628815-c723-4c4e-b68b-5f5d10f38af5</Id><Name>sherlock_holmes.txt</Name><Type>DATA</Type><Version>1</Version></S3Object><S3Object><BucketId>a24d14f3-e2f0-4bfb-ab71-f99d5ef43745</BucketId><CreationDate>2015-09-21T20:06:47.772Z</CreationDate><Id>4f6985fd-fbae-4421-ba27-66fdb96187c5</Id><Name>tale_of_two_cities.txt</Name><Type>DATA</Type><Version>1</Version></S3Object><S3Object><BucketId>a24d14f3-e2f0-4bfb-ab71-f99d5ef43745</BucketId><CreationDate>2015-09-21T20:06:47.696Z</CreationDate><Id>82c18910-fadb-4461-a152-bf714ae91b55</Id><Name>ulysses.txt</Name><Type>DATA</Type><Version>1</Version></S3Object></Data>" ;
206207
208+ final ImmutableMap <String , String > responseHeaders = ImmutableMap .of (
209+ "page-truncated" , "0" ,
210+ "total-result-count" , "4" );
211+
207212 final List <S3Object > objects = MockNetwork
208213 .expecting (HttpVerb .GET , "/_rest_/object" , queryParams , null )
209- .returning (200 , stringResponse )
214+ .returning (200 , stringResponse , responseHeaders )
210215 .asClient ()
211216 .getObjectsDetailsSpectraS3 (new GetObjectsDetailsSpectraS3Request ().withBucketId (bucketId ))
212217 .getS3ObjectListResult ()
@@ -233,6 +238,30 @@ public void getObjectsSpectraS3() throws IOException, SignatureException, ParseE
233238 assertThat (s3ObjectExists (objects , notBeowulf ), is (false ));
234239 }
235240
241+ @ Test (expected = IllegalArgumentException .class )
242+ public void getObjectsSpectraS3ParseHeaderException () throws IOException , SignatureException , ParseException {
243+ final Map <String , String > queryParams = new HashMap <>();
244+ final String bucketId = "a24d14f3-e2f0-4bfb-ab71-f99d5ef43745" ;
245+ queryParams .put ("bucket_id" , bucketId );
246+
247+ final String stringResponse = "<Data>" +
248+ "<S3Object><BucketId>a24d14f3-e2f0-4bfb-ab71-f99d5ef43745</BucketId><CreationDate>2015-09-21T20:06:47.694Z</CreationDate><Id>e37c3ce0-12aa-4f54-87e3-42532aca0e5e</Id><Name>beowulf.txt</Name><Type>DATA</Type><Version>1</Version></S3Object><S3Object><BucketId>a24d14f3-e2f0-4bfb-ab71-f99d5ef43745</BucketId><CreationDate>2015-09-21T20:06:47.779Z</CreationDate><Id>dc628815-c723-4c4e-b68b-5f5d10f38af5</Id><Name>sherlock_holmes.txt</Name><Type>DATA</Type><Version>1</Version></S3Object><S3Object><BucketId>a24d14f3-e2f0-4bfb-ab71-f99d5ef43745</BucketId><CreationDate>2015-09-21T20:06:47.772Z</CreationDate><Id>4f6985fd-fbae-4421-ba27-66fdb96187c5</Id><Name>tale_of_two_cities.txt</Name><Type>DATA</Type><Version>1</Version></S3Object><S3Object><BucketId>a24d14f3-e2f0-4bfb-ab71-f99d5ef43745</BucketId><CreationDate>2015-09-21T20:06:47.696Z</CreationDate><Id>82c18910-fadb-4461-a152-bf714ae91b55</Id><Name>ulysses.txt</Name><Type>DATA</Type><Version>1</Version></S3Object></Data>" ;
249+
250+ final ImmutableMap <String , String > responseHeaders = ImmutableMap .of (
251+ "page-truncated" , "0" ,
252+ "page-truncated" , "1" ,
253+ "total-result-count" , "4" );
254+
255+ MockNetwork
256+ .expecting (HttpVerb .GET , "/_rest_/object" , queryParams , null )
257+ .returning (200 , stringResponse , responseHeaders )
258+ .asClient ()
259+ .getObjectsDetailsSpectraS3 (new GetObjectsDetailsSpectraS3Request ().withBucketId (bucketId ))
260+ .getS3ObjectListResult ()
261+ .getS3Objects ();
262+
263+ }
264+
236265 private boolean s3ObjectExists (final List <S3Object > objects , final S3Object s3obj ) {
237266 for (final S3Object obj : objects ) {
238267 if (s3obj .equals (obj )) {
0 commit comments