RectTest.java revision 4aaebe6f156648e1074f10aadc89f485175c3043
1package com.xtremelabs.robolectric.shadows;
2
3import static org.hamcrest.CoreMatchers.is;
4import static org.junit.Assert.assertThat;
5
6import org.junit.Before;
7import org.junit.Test;
8import org.junit.runner.RunWith;
9
10import android.graphics.Rect;
11
12import com.xtremelabs.robolectric.WithTestDefaultsRunner;
13
14@RunWith(WithTestDefaultsRunner.class)
15public class RectTest {
16    @Before
17    public void setUp() {
18    }
19
20	@Test
21	public void constructorSetsCoordinates() {
22		Rect r = new Rect(1, 2, 3, 4);
23		assertThat(r.left, is(1));
24		assertThat(r.top, is(2));
25		assertThat(r.right, is(3));
26		assertThat(r.bottom, is(4));
27	}
28
29    @Test
30    public void width() {
31    	Rect r = new Rect(0, 0, 10, 10);
32        assertThat(r.width(), is(10));
33    }
34
35    @Test
36    public void height() {
37    	Rect r = new Rect(0, 0, 10, 10);
38        assertThat(r.height(), is(10));
39    }
40
41	@Test
42	public void doesntEqual() {
43		Rect a = new Rect(1, 2, 3, 4);
44		Rect b = new Rect(2, 3, 4, 5);
45		assertThat(a.equals(b), is(false));
46	}
47
48	@Test
49	public void equals() {
50		Rect a = new Rect(1, 2, 3, 4);
51		Rect b = new Rect(1, 2, 3, 4);
52		assertThat(a.equals(b), is(true));
53	}
54
55	@Test
56	public void doesntContainPoint() {
57		Rect r = new Rect(0, 0, 10, 10);
58		assertThat(r.contains(11, 11), is(false));
59	}
60
61	@Test
62	public void containsPoint() {
63		Rect r = new Rect(0, 0, 10, 10);
64		assertThat(r.contains(5, 5), is(true));
65	}
66
67	@Test
68	public void doesntContainPointOnLeftEdge() {
69		Rect r = new Rect(0, 0, 10, 10);
70		assertThat(r.contains(0, 5), is(false));
71	}
72
73	@Test
74	public void doesntContainPointOnRightEdge() {
75		Rect r = new Rect(0, 0, 10, 10);
76		assertThat(r.contains(10, 5), is(false));
77	}
78
79	@Test
80	public void containsPointOnTopEdge() {
81		Rect r = new Rect(0, 0, 10, 10);
82		assertThat(r.contains(5, 0), is(true));
83	}
84
85	@Test
86	public void containsPointOnBottomEdge() {
87		Rect r = new Rect(0, 0, 10, 10);
88		assertThat(r.contains(5, 10), is(true));
89	}
90
91	@Test
92	public void doesntContainRect() {
93		Rect a = new Rect(0, 0, 10, 10);
94		Rect b = new Rect(11, 11, 12, 12);
95		assertThat(a.contains(b), is(false));
96	}
97
98	@Test
99	public void containsRect() {
100		Rect a = new Rect(0, 0, 10, 10);
101		Rect b = new Rect(8, 8, 9, 9);
102		assertThat(a.contains(b), is(true));
103	}
104
105	@Test
106	public void containsEqualRect() {
107		Rect a = new Rect(0, 0, 10, 10);
108		Rect b = new Rect(0, 0, 10, 10);
109		assertThat(a.contains(b), is(true));
110	}
111
112	@Test
113	public void intersectsButDoesntContainRect() {
114		Rect a = new Rect(0, 0, 10, 10);
115		Rect b = new Rect(5, 5, 15, 15);
116		assertThat(a.contains(b), is(false));
117	}
118
119	@Test
120	public void doesntIntersect() {
121		Rect a = new Rect(0, 0, 10, 10);
122		Rect b = new Rect(11, 11, 21, 21);
123		assertThat(Rect.intersects(a, b), is(false));
124	}
125
126	@Test
127	public void intersects() {
128		Rect a = new Rect(0, 0, 10, 10);
129		Rect b = new Rect(5, 0, 15, 10);
130		assertThat(Rect.intersects(a, b), is(true));
131	}
132
133	@Test
134	public void almostIntersects() {
135		Rect a = new Rect(3, 0, 4, 2);
136		Rect b = new Rect(1, 0, 3, 1);
137		assertThat(Rect.intersects(a, b), is(false));
138	}
139
140	@Test
141	public void intersectRect() {
142		Rect a = new Rect(0, 0, 10, 10);
143		Rect b = new Rect(5, 0, 15, 10);
144		assertThat(a.intersect(b), is(true));
145	}
146
147	@Test
148	public void intersectCoordinates() {
149		Rect r = new Rect(0, 0, 10, 10);
150		assertThat(r.intersect(5, 0, 15, 10), is(true));
151	}
152}