/******************************************************************************************************************* * ******************************************************************************************************************/ @Test public void must_properly_output_a_ResourceFile() throws Exception { final ResponseBuilder<?> builder = underTest.response().fromFile(resourceFile); assertContents(builder, "ResourceFileOutput.txt"); }
/******************************************************************************************************************* * ******************************************************************************************************************/ @Test public void must_output_a_ResourceFile_when_Etag_not_Matching() throws Exception { headers.put(HEADER_IF_NONE_MATCH, "\"xxxx\""); final ResponseBuilder<?> builder = underTest.response().fromFile(resourceFile) .forRequest(request); assertContents(builder, "ResourceFileOutput.txt"); }
/******************************************************************************************************************* * ******************************************************************************************************************/ @Test public void must_output_NotModified_when_Etag_Matching() throws Exception { headers.put(HEADER_IF_NONE_MATCH, "\"1341242553456\""); final ResponseBuilder<?> builder = underTest.response().fromFile(resourceFile) .forRequest(request); assertContents(builder, "ResourceFileNotModifiedOutput.txt"); }
/******************************************************************************************************************* * ******************************************************************************************************************/ @Test public void must_properly_output_a_ResourceFile_with_ExpirationTime() throws Exception { final ResponseBuilder<?> builder = underTest.response().fromFile(resourceFile) .withExpirationTime(Duration.standardDays(7)); assertContents(builder, "ResourceFileOutputWithExpirationTime.txt"); }
/******************************************************************************************************************* * ******************************************************************************************************************/ @Test public void must_output_a_ResourceFile_when_IfModifiedSince_less_recent_than_ModifiedTime() throws Exception { for (int deltaSeconds = -10; deltaSeconds < 0; deltaSeconds++) { final DateTime ifModifiedSinceTime = resourceLatestModifiedTime.plusSeconds(deltaSeconds); headers.put(HEADER_IF_MODIFIED_SINCE, toString(ifModifiedSinceTime)); final ResponseBuilder<?> builder = underTest.response().fromFile(resourceFile) .forRequest(request); assertContents(builder, "ResourceFileOutput.txt"); } }
/******************************************************************************************************************* * ******************************************************************************************************************/ @Test public void must_output_NotModified_when_IfModifiedSince_more_recent_than_or_equal_to_ModifiedTime() throws Exception { // corner case: same time should return NotModified for (int deltaSeconds = 0; deltaSeconds < 10; deltaSeconds++) { final DateTime ifModifiedSinceTime = resourceLatestModifiedTime.plusSeconds(deltaSeconds); headers.put(HEADER_IF_MODIFIED_SINCE, toString(ifModifiedSinceTime)); final ResponseBuilder<?> builder = underTest.response().fromFile(resourceFile) .forRequest(request); assertContents(builder, "ResourceFileNotModifiedOutput.txt"); } }
log.info(">>>> serving contents of {} ...", file.getPath().asString()); responseHolder.response().fromFile(file) .withExpirationTime(duration) .forRequest(request)