001/* 002 * The contents of this file are subject to the license and copyright 003 * detailed in the LICENSE and NOTICE files at the root of the source 004 * tree. 005 */ 006package org.fcrepo.http.commons.domain; 007 008import static org.junit.Assert.assertEquals; 009import static org.junit.Assert.assertFalse; 010import static org.junit.Assert.assertTrue; 011 012import org.junit.Test; 013 014/** 015 * <p>RangeTest class.</p> 016 * 017 * @author awoods 018 */ 019public class RangeTest { 020 @Test 021 public void testUnboundedRange() { 022 final Range range = new Range(5); 023 024 assertEquals(5L, range.start()); 025 assertEquals(-1L, range.end()); 026 027 } 028 @Test 029 public void testRangeParsing() { 030 final Range range = Range.convert("bytes=50-100"); 031 032 assertEquals(50L, range.start()); 033 assertEquals(100L, range.end()); 034 assertEquals(51L, range.size()); 035 assertTrue(range.hasRange()); 036 037 } 038 039 @Test 040 public void testUnboundedUpperRangeParsing() { 041 final Range range = Range.convert("bytes=50-"); 042 043 assertEquals(50L, range.start()); 044 assertEquals(-1L, range.end()); 045 assertEquals(-1L, range.size()); 046 assertTrue(range.hasRange()); 047 048 } 049 050 @Test 051 public void testUnboundedLowerRangeParsing() { 052 final Range range = Range.convert("bytes=-50"); 053 054 assertEquals(0L, range.start()); 055 assertEquals(50L, range.end()); 056 assertEquals(51L, range.size()); 057 assertTrue(range.hasRange()); 058 059 } 060 061 @Test 062 public void testGarbageRangeParsing() { 063 final Range range = Range.convert("something-thats-not-a-range"); 064 065 assertFalse(range.hasRange()); 066 assertEquals(0L, range.start()); 067 assertEquals(-1L, range.end()); 068 assertEquals(-1L, range.size()); 069 070 } 071}