1e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray/*
2e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray * Copyright (C) 2014 The Android Open Source Project
3e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray *
4e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray * Licensed under the Apache License, Version 2.0 (the "License");
5e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray * you may not use this file except in compliance with the License.
6e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray * You may obtain a copy of the License at
7e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray *
8e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray *      http://www.apache.org/licenses/LICENSE-2.0
9e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray *
10e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray * Unless required by applicable law or agreed to in writing, software
11e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray * distributed under the License is distributed on an "AS IS" BASIS,
12e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray * See the License for the specific language governing permissions and
14e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray * limitations under the License.
15e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray */
16e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray
17e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray/**
18e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray * Common superclass for test cases.
19e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray */
20e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray
21e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffrayimport java.util.Arrays;
22e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray
23e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffraypublic abstract class TestCase {
24e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  public static void assertSame(Object expected, Object value) {
25e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    if (expected != value) {
26e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      throw new AssertionError("Objects are not the same: expected " +
27e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray          String.valueOf(expected) + ", got " + String.valueOf(value));
28e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    }
29e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  }
30e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray
31e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  public static void assertNotSame(Object expected, Object value) {
32e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    if (expected == value) {
33e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      throw new AssertionError(
34e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray          "Objects are the same: " + String.valueOf(expected));
35e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    }
36e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  }
37e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray
38e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  public static void assertEquals(String message, int expected, int actual) {
39e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    if (expected != actual) {
40e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      throw new AssertionError(message);
41e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    }
42e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  }
43e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray
44e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  public static void assertEquals(int expected, int actual) {
45e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    if (expected != actual) {
46e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      throw new AssertionError("Expected " + expected + " got " + actual);
47e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    }
48e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  }
49e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray
50e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  public static void assertTrue(String message, boolean condition) {
51e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    if (!condition) {
52e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      throw new AssertionError(message);
53e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    }
54e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  }
55e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray
56e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  public static void assertTrue(boolean condition) {
57e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    assertTrue("Expected true", condition);
58e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  }
59e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray
60e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  public static void assertFalse(String message, boolean condition) {
61e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    if (condition) {
62e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      throw new AssertionError(message);
63e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    }
64e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  }
65e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray
66e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  public static void assertFalse(boolean condition) {
67e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    assertFalse("Expected false", condition);
68e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  }
69e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray
70e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  public static void assertEquals(Object expected, Object actual) {
71e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    if (!expected.equals(actual)) {
72e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      String msg = "Expected \"" + expected + "\" but got \"" + actual + "\"";
73e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      throw new AssertionError(msg);
74e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    }
75e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  }
76e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray
77e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  public static void assertNotEquals(int expected, int actual) {
78e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    if (expected == actual) {
79e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      throw new AssertionError("Expected " + expected + " got " + actual);
80e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    }
81e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  }
82e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray
83e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  public static void assertNotEquals(Object expected, Object actual) {
84e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    if (expected.equals(actual)) {
85e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      String msg = "Objects are the same: " + String.valueOf(expected);
86e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      throw new AssertionError(msg);
87e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    }
88e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  }
89e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray
90e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  public static <T> void assertArrayEquals(T[] actual, T... expected) {
91e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      assertTrue(Arrays.equals(expected, actual));
92e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  }
93e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray
94e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  public static void assertEquals(
95e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      String message, Object expected, Object actual) {
96e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    if (!expected.equals(actual)) {
97e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      throw new AssertionError(message);
98e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    }
99e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  }
100e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray
101e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  public static void assertEquals(
102e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      String message, long expected, long actual) {
103e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    if (expected != actual) {
104e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      throw new AssertionError(message);
105e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    }
106e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  }
107e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray
108e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  public static void assertEquals(long expected, long actual) {
109e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    if (expected != actual) {
110e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      throw new AssertionError("Expected " + expected + " got " + actual);
111e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    }
112e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  }
113e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray
114e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  public static void assertEquals(
115e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      String message, boolean expected, boolean actual) {
116e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    if (expected != actual) {
117e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      throw new AssertionError(message);
118e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    }
119e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  }
120e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray
121e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  public static void assertEquals(boolean expected, boolean actual) {
122e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    if (expected != actual) {
123e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      throw new AssertionError("Expected " + expected + " got " + actual);
124e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    }
125e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  }
126e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray
127e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  public static void assertEquals(
128e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      String message, float expected, float actual) {
129e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    if (expected != actual) {
130e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      throw new AssertionError(message);
131e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    }
132e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  }
133e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray
134e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  public static void assertEquals(float expected, float actual) {
135e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    if (expected != actual) {
136e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      throw new AssertionError("Expected " + expected + " got " + actual);
137e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    }
138e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  }
139e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray
140e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  public static void assertEquals(float expected, float actual,
141e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray                                  float tolerance) {
142e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    if ((actual < expected - tolerance) || (expected + tolerance < actual)) {
143e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      throw new AssertionError("Expected " + expected + " got " + actual +
144e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray          " tolerance " + tolerance);
145e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    }
146e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  }
147e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray
148e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  public static void assertEquals(
149e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      String message, double expected, double actual) {
150e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    if (expected != actual) {
151e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      throw new AssertionError(message);
152e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    }
153e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  }
154e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray
155e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  public static void assertEquals(double expected, double actual) {
156e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    if (expected != actual) {
157e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      throw new AssertionError("Expected " + expected + " got " + actual);
158e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    }
159e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  }
160e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray
161e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  public static void assertEquals(double expected, double actual,
162e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray                                  double tolerance) {
163e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    if ((actual < expected - tolerance) || (expected + tolerance < actual)) {
164e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      throw new AssertionError("Expected " + expected + " got " + actual +
165e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray          " tolerance " + tolerance);
166e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    }
167e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  }
168e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray
169e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  public static void assertSame(
170e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      String message, Object expected, Object actual) {
171e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    if (expected != actual) {
172e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      throw new AssertionError(message);
173e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    }
174e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  }
175e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray
176e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  public static void assertNull(String message, Object object) {
177e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    if (object != null) {
178e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      throw new AssertionError(message);
179e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    }
180e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  }
181e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray
182e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  public static void assertNull(Object object) {
183e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    assertNull("Expected null", object);
184e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  }
185e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray
186e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  public static void assertNotNull(String message, Object object) {
187e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    if (object == null) {
188e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray      throw new AssertionError(message);
189e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    }
190e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  }
191e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray
192e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  public static void assertNotNull(Object object) {
193e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    assertNotNull("Expected non-null", object);
194e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  }
195e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray
196e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  public static void fail(String msg) {
197e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray    throw new AssertionError(msg);
198e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray  }
199e50383288a75244255d3ecedcc79ffe9caf774cbNicolas Geoffray}
200