62 */ 63 static public void assertNull(Object object) { 64 if (object != null) { 65 failNotEquals(null, null, object); 66 } 67 } 68 69 static public void failNotEquals(String message, Object expected, Object actual) { 70 if (!expected.equals(actual)) { 71 Assert.fail( 72 ((message != null) ? message + ' ' : "") + "expected:<" + expected + "> but was:<" + actual + ">"); 73 } 74 } 75 76 /** 77 * Asserts that with respect to all bits in the mask, a long is equal to the given value. If it 78 * is not an AssertionFailedError is thrown with the given message. 79 */ 80 static public void assertMaskedEquals(String message, long expected, long actual, long mask) { 81 if (((expected ^ actual) & mask) != 0) { 82 Assert.fail(((message != null) ? message + ' ' : "") //$NON-NLS-1$ 83 + "masked with " + hex(mask) + " expected:<" + hex(expected) + "> was not:<" + hex(actual) + ">"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ 84 } 85 } 86 87 /** 88 * Asserts that with respect to all bits in the mask, a long is equal to the given value. 89 */ 90 static public void assertMaskedEquals(long expected, long actual, long mask) { 91 assertMaskedEquals(null, expected, actual, mask); 92 } 93 94 protected static String hex(long val) { 95 return "0x" + Long.toHexString(val); //$NON-NLS-1$ 96 } 97 98 /** 99 * Asserts that a {@link Comparable} is within the given (inclusive) range. If it is not an 100 * AssertionFailedError is thrown with the given message. 101 */ 102 static public <T extends Comparable<T>> void assertBetween(String message, T min, T max, T actual) { 103 if ((min.compareTo(actual) > 0) || (max.compareTo(actual) < 0)) { 104 Assert.fail(((message != null) ? message + ' ' : "") //$NON-NLS-1$ 105 + "expected in:[" + min + ", " + max + "] was not:<" + actual + ">"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ 106 } 107 } 108 109 /** 110 * Asserts that a {@link Comparable} is within the given (inclusive) range. 111 */ 112 static public <T extends Comparable<T>> void assertBetween(T min, T max, T actual) { 113 assertBetween(null, min, max, actual); 114 } 115 116 /** 117 * Asserts that a {@link Comparable} is less or equal than the given value. If it is not an 118 * AssertionFailedError is thrown with the given message. 119 */ 120 static public <T extends Comparable<T>> void assertMax(String message, T max, T actual) { 121 if (max.compareTo(actual) < 0) { 122 Assert.fail(((message != null) ? message + ' ' : "") //$NON-NLS-1$ 123 + "expected max:<" + max + "> was not:<" + actual + ">"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ 124 } 125 } 126 127 /** 128 * Asserts that a {@link Comparable} is less or equal than the given value. 129 */ 130 static public <T extends Comparable<T>> void assertMax(T max, T actual) { 131 assertMax(null, max, actual); 132 } 133 134 /** 135 * Asserts that a {@link Comparable} is greater or equal than the given value. If it is not an 136 * AssertionFailedError is thrown with the given message. 137 */ 138 static public <T extends Comparable<T>> void assertMin(String message, T min, T actual) { 139 if (min.compareTo(actual) > 0) { 140 Assert.fail(((message != null) ? message + ' ' : "") //$NON-NLS-1$ 141 + "expected min:<" + min + "> was not:<" + actual + ">"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ 142 } 143 } 144 145 /** 146 * Asserts that a {@link Comparable} is greater or equal than the given value. 147 */ 148 static public <T extends Comparable<T>> void assertMin(T min, T actual) { 149 assertMin(null, min, actual); 150 } 151 152 /** 153 * Asserts that a {@link Comparable} is less than the given value. If it is not an 154 * AssertionFailedError is thrown with the given message. 155 */ 156 static public <T extends Comparable<T>> void assertLessThan(String message, T greaterVal, T actual) { 157 if (greaterVal.compareTo(actual) <= 0) { 158 Assert.fail(((message != null) ? message + ' ' : "") //$NON-NLS-1$ 159 + "expected less than:<" + greaterVal + "> was not:<" + actual + ">"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ 160 } 161 } 162 163 /** 164 * Asserts that a {@link Comparable} is less than the given value. 165 */ 166 static public <T extends Comparable<T>> void assertLessThan(T greaterVal, T actual) { 167 assertLessThan(null, greaterVal, actual); 168 } 169 170 /** 171 * Asserts that a {@link Comparable} is greater than the given value. If it is not an 172 * AssertionFailedError is thrown with the given message. 173 */ 174 static public <T extends Comparable<? super T>> void assertGreaterThan(String message, T lesserVal, T actual) { 175 if (lesserVal.compareTo(actual) >= 0) { 176 Assert.fail(((message != null) ? message + ' ' : "") //$NON-NLS-1$ 177 + "expected greater than:<" + lesserVal + "> was not:<" + actual + ">"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ 178 } 179 } 180 181 /** 182 * Asserts that a {@link Comparable} is greater than the given value. 183 */ 184 static public <T extends Comparable<? super T>> void assertGreaterThan(T lesserVal, T actual) { 185 assertGreaterThan(null, lesserVal, actual); 186 } 187 188 public static void assertArrayEqualsWithMoreInfo(String message, Object[] expecteds, Object[] actuals) { 189 try { 190 assertArrayEquals(message, expecteds, actuals); 191 } catch (AssertionError e) { 192 StringBuilder sb = new StringBuilder(); 193 sb.append(e.getMessage()); 194 sb.append(" (Expected {"); 195 sb.append(StringToolkit.join(Arrays.asList(expecteds), ", ")).append("}"); 196 sb.append(", got {"); 197 sb.append(StringToolkit.join(Arrays.asList(actuals), ", ")).append("}"); 198 throw new AssertionError(sb.toString(), e); 199 } 200 } 201 202 protected void skipIfEarlierThan8u0() { 203 Assume.assumeTrue("This feature is only valid on JDK8u0 or later.", //$NON-NLS-1$ 204 (getClientVersion().compareTo(JVMVersion.JDK8)) >= 0); 205 } 206 207 protected void skipIfEarlierThan7u40() { 208 Assume.assumeTrue("This feature is only valid on JDK7u40 or later.", //$NON-NLS-1$ 209 (getClientVersion().compareTo(JVMVersion.JDK7u40)) >= 0); 210 } 211 212 protected void skipIfEarlierThan7u4() { 213 Assume.assumeTrue("This feature is only valid on JDK7u4 or later.", //$NON-NLS-1$ 214 (getClientVersion().compareTo(JVMVersion.JDK7u4)) >= 0); 215 } 216 217 protected void skipIfEarlierThan7u0() { 218 Assume.assumeTrue("This feature is only valid on JDK7u0 or later.", //$NON-NLS-1$ 219 (getClientVersion().compareTo(JVMVersion.JDK7)) >= 0); 220 } 221 222 // This enum needs to be in the proper order. 223 private enum JVMVersion { 224 ANY, UNKNOWN, JRockit, JDK6, JDK7, JDK7u4, JDK7u40, JDK8 225 } 226 227 private JVMVersion getClientVersion() { 228 if (JavaVMVersionToolkit.isJRockitJVMName(System.getProperty("java.vm.name"))) { //$NON-NLS-1$ 229 return JVMVersion.JRockit; 230 } else if (JavaVMVersionToolkit.isHotspotJVMName(System.getProperty("java.vm.name"))) { //$NON-NLS-1$ 231 JavaVersion javaVersion = new JavaVersion(System.getProperty("java.version")); //$NON-NLS-1$ 232 if (javaVersion.isGreaterOrEqualThan(JavaVersionSupport.JDK_8)) { 233 return JVMVersion.JDK8; 234 } else if (javaVersion.isGreaterOrEqualThan(JavaVersionSupport.JDK_7_U_40)) { 235 return JVMVersion.JDK7u40; 236 } else if (javaVersion.isGreaterOrEqualThan(JavaVersionSupport.JDK_7_U_4)) { 237 return JVMVersion.JDK7u4; 238 } else if (javaVersion.isGreaterOrEqualThan(JavaVersionSupport.JDK_7)) { 239 return JVMVersion.JDK7; 240 } else if (javaVersion.isGreaterOrEqualThan(JavaVersionSupport.JDK_6)) { 241 return JVMVersion.JDK6; 242 } 243 } 244 return JVMVersion.UNKNOWN; 245 } 246 } | 62 */ 63 static public void assertNull(Object object) { 64 if (object != null) { 65 failNotEquals(null, null, object); 66 } 67 } 68 69 static public void failNotEquals(String message, Object expected, Object actual) { 70 if (!expected.equals(actual)) { 71 Assert.fail( 72 ((message != null) ? message + ' ' : "") + "expected:<" + expected + "> but was:<" + actual + ">"); 73 } 74 } 75 76 /** 77 * Asserts that with respect to all bits in the mask, a long is equal to the given value. If it 78 * is not an AssertionFailedError is thrown with the given message. 79 */ 80 static public void assertMaskedEquals(String message, long expected, long actual, long mask) { 81 if (((expected ^ actual) & mask) != 0) { 82 Assert.fail(((message != null) ? message + ' ' : "") 83 + "masked with " + hex(mask) + " expected:<" + hex(expected) + "> was not:<" + hex(actual) + ">"); 84 } 85 } 86 87 /** 88 * Asserts that with respect to all bits in the mask, a long is equal to the given value. 89 */ 90 static public void assertMaskedEquals(long expected, long actual, long mask) { 91 assertMaskedEquals(null, expected, actual, mask); 92 } 93 94 protected static String hex(long val) { 95 return "0x" + Long.toHexString(val); 96 } 97 98 /** 99 * Asserts that a {@link Comparable} is within the given (inclusive) range. If it is not an 100 * AssertionFailedError is thrown with the given message. 101 */ 102 static public <T extends Comparable<T>> void assertBetween(String message, T min, T max, T actual) { 103 if ((min.compareTo(actual) > 0) || (max.compareTo(actual) < 0)) { 104 Assert.fail(((message != null) ? message + ' ' : "") 105 + "expected in:[" + min + ", " + max + "] was not:<" + actual + ">"); 106 } 107 } 108 109 /** 110 * Asserts that a {@link Comparable} is within the given (inclusive) range. 111 */ 112 static public <T extends Comparable<T>> void assertBetween(T min, T max, T actual) { 113 assertBetween(null, min, max, actual); 114 } 115 116 /** 117 * Asserts that a {@link Comparable} is less or equal than the given value. If it is not an 118 * AssertionFailedError is thrown with the given message. 119 */ 120 static public <T extends Comparable<T>> void assertMax(String message, T max, T actual) { 121 if (max.compareTo(actual) < 0) { 122 Assert.fail(((message != null) ? message + ' ' : "") 123 + "expected max:<" + max + "> was not:<" + actual + ">"); 124 } 125 } 126 127 /** 128 * Asserts that a {@link Comparable} is less or equal than the given value. 129 */ 130 static public <T extends Comparable<T>> void assertMax(T max, T actual) { 131 assertMax(null, max, actual); 132 } 133 134 /** 135 * Asserts that a {@link Comparable} is greater or equal than the given value. If it is not an 136 * AssertionFailedError is thrown with the given message. 137 */ 138 static public <T extends Comparable<T>> void assertMin(String message, T min, T actual) { 139 if (min.compareTo(actual) > 0) { 140 Assert.fail(((message != null) ? message + ' ' : "") 141 + "expected min:<" + min + "> was not:<" + actual + ">"); 142 } 143 } 144 145 /** 146 * Asserts that a {@link Comparable} is greater or equal than the given value. 147 */ 148 static public <T extends Comparable<T>> void assertMin(T min, T actual) { 149 assertMin(null, min, actual); 150 } 151 152 /** 153 * Asserts that a {@link Comparable} is less than the given value. If it is not an 154 * AssertionFailedError is thrown with the given message. 155 */ 156 static public <T extends Comparable<T>> void assertLessThan(String message, T greaterVal, T actual) { 157 if (greaterVal.compareTo(actual) <= 0) { 158 Assert.fail(((message != null) ? message + ' ' : "") 159 + "expected less than:<" + greaterVal + "> was not:<" + actual + ">"); 160 } 161 } 162 163 /** 164 * Asserts that a {@link Comparable} is less than the given value. 165 */ 166 static public <T extends Comparable<T>> void assertLessThan(T greaterVal, T actual) { 167 assertLessThan(null, greaterVal, actual); 168 } 169 170 /** 171 * Asserts that a {@link Comparable} is greater than the given value. If it is not an 172 * AssertionFailedError is thrown with the given message. 173 */ 174 static public <T extends Comparable<? super T>> void assertGreaterThan(String message, T lesserVal, T actual) { 175 if (lesserVal.compareTo(actual) >= 0) { 176 Assert.fail(((message != null) ? message + ' ' : "") 177 + "expected greater than:<" + lesserVal + "> was not:<" + actual + ">"); 178 } 179 } 180 181 /** 182 * Asserts that a {@link Comparable} is greater than the given value. 183 */ 184 static public <T extends Comparable<? super T>> void assertGreaterThan(T lesserVal, T actual) { 185 assertGreaterThan(null, lesserVal, actual); 186 } 187 188 public static void assertArrayEqualsWithMoreInfo(String message, Object[] expecteds, Object[] actuals) { 189 try { 190 assertArrayEquals(message, expecteds, actuals); 191 } catch (AssertionError e) { 192 StringBuilder sb = new StringBuilder(); 193 sb.append(e.getMessage()); 194 sb.append(" (Expected {"); 195 sb.append(StringToolkit.join(Arrays.asList(expecteds), ", ")).append("}"); 196 sb.append(", got {"); 197 sb.append(StringToolkit.join(Arrays.asList(actuals), ", ")).append("}"); 198 throw new AssertionError(sb.toString(), e); 199 } 200 } 201 202 protected void skipIfEarlierThan8u0() { 203 Assume.assumeTrue("This feature is only valid on JDK8u0 or later.", 204 (getClientVersion().compareTo(JVMVersion.JDK8)) >= 0); 205 } 206 207 protected void skipIfEarlierThan7u40() { 208 Assume.assumeTrue("This feature is only valid on JDK7u40 or later.", 209 (getClientVersion().compareTo(JVMVersion.JDK7u40)) >= 0); 210 } 211 212 protected void skipIfEarlierThan7u4() { 213 Assume.assumeTrue("This feature is only valid on JDK7u4 or later.", 214 (getClientVersion().compareTo(JVMVersion.JDK7u4)) >= 0); 215 } 216 217 protected void skipIfEarlierThan7u0() { 218 Assume.assumeTrue("This feature is only valid on JDK7u0 or later.", 219 (getClientVersion().compareTo(JVMVersion.JDK7)) >= 0); 220 } 221 222 // This enum needs to be in the proper order. 223 private enum JVMVersion { 224 ANY, UNKNOWN, JRockit, JDK6, JDK7, JDK7u4, JDK7u40, JDK8 225 } 226 227 private JVMVersion getClientVersion() { 228 if (JavaVMVersionToolkit.isJRockitJVMName(System.getProperty("java.vm.name"))) { 229 return JVMVersion.JRockit; 230 } else if (JavaVMVersionToolkit.isHotspotJVMName(System.getProperty("java.vm.name"))) { 231 JavaVersion javaVersion = new JavaVersion(System.getProperty("java.version")); 232 if (javaVersion.isGreaterOrEqualThan(JavaVersionSupport.JDK_8)) { 233 return JVMVersion.JDK8; 234 } else if (javaVersion.isGreaterOrEqualThan(JavaVersionSupport.JDK_7_U_40)) { 235 return JVMVersion.JDK7u40; 236 } else if (javaVersion.isGreaterOrEqualThan(JavaVersionSupport.JDK_7_U_4)) { 237 return JVMVersion.JDK7u4; 238 } else if (javaVersion.isGreaterOrEqualThan(JavaVersionSupport.JDK_7)) { 239 return JVMVersion.JDK7; 240 } else if (javaVersion.isGreaterOrEqualThan(JavaVersionSupport.JDK_6)) { 241 return JVMVersion.JDK6; 242 } 243 } 244 return JVMVersion.UNKNOWN; 245 } 246 } |