diff options
author | Leif Åstrand <leif@vaadin.com> | 2014-04-17 16:37:19 +0300 |
---|---|---|
committer | Vaadin Code Review <review@vaadin.com> | 2014-05-30 10:04:04 +0000 |
commit | d2d803e4aaafe642ea490db7fb4f6c3615103382 (patch) | |
tree | 2a8df479388e611c62b1c29ca48d43d2ab973e97 /shared/tests | |
parent | 964ebc8a2c4024f2a4fe60e9eec140e351c724bb (diff) | |
download | vaadin-framework-d2d803e4aaafe642ea490db7fb4f6c3615103382.tar.gz vaadin-framework-d2d803e4aaafe642ea490db7fb4f6c3615103382.zip |
Add expansion and limiting for Range (#13334)
The added functionality is used by the upcoming caching logic.
Change-Id: Ibc4e7103241b2199b85bf7727339d1f6a4b5fc9b
Diffstat (limited to 'shared/tests')
-rw-r--r-- | shared/tests/src/com/vaadin/shared/ui/grid/RangeTest.java | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/shared/tests/src/com/vaadin/shared/ui/grid/RangeTest.java b/shared/tests/src/com/vaadin/shared/ui/grid/RangeTest.java index b042cee509..ab67b22d0b 100644 --- a/shared/tests/src/com/vaadin/shared/ui/grid/RangeTest.java +++ b/shared/tests/src/com/vaadin/shared/ui/grid/RangeTest.java @@ -315,4 +315,92 @@ public class RangeTest { assertEquals(r1, combined1); } + @Test + public void expand_basic() { + Range r1 = Range.between(5, 10); + Range r2 = r1.expand(2, 3); + + assertEquals(Range.between(3, 13), r2); + } + + @Test + public void expand_negativeLegal() { + Range r1 = Range.between(5, 10); + + Range r2 = r1.expand(-2, -2); + assertEquals(Range.between(7, 8), r2); + + Range r3 = r1.expand(-3, -2); + assertEquals(Range.between(8, 8), r3); + + Range r4 = r1.expand(3, -8); + assertEquals(Range.between(2, 2), r4); + } + + @Test(expected = IllegalArgumentException.class) + public void expand_negativeIllegal1() { + Range r1 = Range.between(5, 10); + + // Should throw because the start would contract beyond the end + r1.expand(-3, -3); + + } + + @Test(expected = IllegalArgumentException.class) + public void expand_negativeIllegal2() { + Range r1 = Range.between(5, 10); + + // Should throw because the end would contract beyond the start + r1.expand(3, -9); + } + + @Test + public void restrictTo_fullyInside() { + Range r1 = Range.between(5, 10); + Range r2 = Range.between(4, 11); + + Range r3 = r1.restrictTo(r2); + assertTrue(r1 == r3); + } + + @Test + public void restrictTo_fullyOutside() { + Range r1 = Range.between(4, 11); + Range r2 = Range.between(5, 10); + + Range r3 = r1.restrictTo(r2); + assertTrue(r2 == r3); + } + + public void restrictTo_notInterstecting() { + Range r1 = Range.between(5, 10); + Range r2 = Range.between(15, 20); + + Range r3 = r1.restrictTo(r2); + assertTrue("Non-intersecting ranges should produce an empty result", + r3.isEmpty()); + + Range r4 = r2.restrictTo(r1); + assertTrue("Non-intersecting ranges should produce an empty result", + r4.isEmpty()); + } + + public void restrictTo_startOutside() { + Range r1 = Range.between(5, 10); + Range r2 = Range.between(7, 15); + + Range r3 = r1.restrictTo(r2); + + assertEquals(Range.between(7, 10), r3); + } + + public void restrictTo_endOutside() { + Range r1 = Range.between(5, 10); + Range r2 = Range.between(4, 7); + + Range r3 = r1.restrictTo(r2); + + assertEquals(Range.between(5, 7), r3); + } + } |