Skip to content

Commit 3c5f939

Browse files
committed
Add get object range test.
This was written by Junie.
1 parent 7613b5e commit 3c5f939

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

server/src/test/kotlin/com/adobe/testing/s3mock/ObjectControllerTest.kt

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -596,6 +596,37 @@ internal class ObjectControllerTest : BaseControllerTest() {
596596
assertThat(response.statusCode).isEqualTo(HttpStatus.OK)
597597
}
598598

599+
@Test
600+
@Throws(Exception::class)
601+
fun testGetObject_Range_Ok() {
602+
givenBucket()
603+
val key = "sampleFile.txt"
604+
val testFile = File(UPLOAD_FILE_NAME)
605+
val digest = DigestUtil.hexDigest(Files.newInputStream(testFile.toPath()))
606+
607+
whenever(objectService.verifyObjectExists("test-bucket", key, null))
608+
.thenReturn(s3ObjectMetadata(key, digest))
609+
610+
val headers = HttpHeaders().apply {
611+
this.accept = listOf(MediaType.ALL)
612+
this.set("Range", "bytes=1-2")
613+
}
614+
615+
val response = restTemplate.exchange(
616+
"/test-bucket/$key",
617+
HttpMethod.GET,
618+
HttpEntity<Any>(headers),
619+
ByteArray::class.java
620+
)
621+
622+
assertThat(response.statusCode).isEqualTo(HttpStatus.PARTIAL_CONTENT)
623+
val total = testFile.length()
624+
assertThat(response.headers.getFirst(HttpHeaders.CONTENT_RANGE)).isEqualTo("bytes 1-2/$total")
625+
assertThat(response.headers.getFirst(HttpHeaders.ACCEPT_RANGES)).isEqualTo("bytes")
626+
assertThat(response.headers.contentLength).isEqualTo(2)
627+
assertThat(response.headers.eTag).isEqualTo("\"$digest\"")
628+
}
629+
599630
private fun givenBucket() {
600631
whenever(bucketService.getBucket(TEST_BUCKET_NAME)).thenReturn(TEST_BUCKET)
601632
whenever(bucketService.doesBucketExist(TEST_BUCKET_NAME)).thenReturn(true)

0 commit comments

Comments
 (0)