lmw
2023-03-11 4df5bb59e5fe9f9d140e5610f7772dd8a05a28d4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package com.beloo.widget.chipslayoutmanager.layouter;
 
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
 
import static org.junit.Assert.assertTrue;
 
@RunWith(JUnit4.class)
abstract class AbstractPositionIteratorTest {
 
    abstract AbstractPositionIterator providePositionIterator(int maxPosition);
 
    @Before
    public void setUp() {}
 
    @Test
    public void moveShouldSetCurrentPosition() {
        AbstractPositionIterator iterator = providePositionIterator(20);
        iterator.move(10);
        assertTrue(iterator.pos == 10);
 
        iterator.move(0);
        assertTrue(iterator.pos == 0);
 
        iterator.move(19);
        assertTrue(iterator.pos == 19);
    }
 
    @Test
    public void nextAfterMoveShouldReturnTargetMovePosition() {
        AbstractPositionIterator iterator = providePositionIterator(20);
        iterator.move(10);
        assertTrue(iterator.next() == 10);
 
        iterator.move(0);
        assertTrue(iterator.next() == 0);
 
        iterator.move(19);
        assertTrue(iterator.next() == 19);
    }
 
    @Test(expected = IllegalArgumentException.class)
    public void negativeCountInitializationShouldThrowException() {
        //arrange
        providePositionIterator(-5);
    }
 
    @Test(expected = IllegalArgumentException.class)
    public void negativePositionMoveShouldThrowException() {
        //arrange
        AbstractPositionIterator incrementalIterator = providePositionIterator(5);
        incrementalIterator.move(-5);
    }
 
    @Test(expected = IllegalArgumentException.class)
    public void movementEqualMaxCountShouldThrowException() {
        AbstractPositionIterator iterator = providePositionIterator(5);
        iterator.move(5);
    }
 
    @Test(expected = IllegalArgumentException.class)
    public void movementAboveMaxCountShouldThrowException() {
        AbstractPositionIterator iterator = providePositionIterator(5);
        iterator.move(7);
    }
 
    @Test(expected = Exception.class)
    public void testRemoveNotSupported() {
        AbstractPositionIterator iterator = providePositionIterator(5);
        iterator.remove();
    }
 
 
}