1765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye/******************************************************************************* 2765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Copyright (c) 2011 Google, Inc. 3765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * All rights reserved. This program and the accompanying materials 4765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * are made available under the terms of the Eclipse Public License v1.0 5765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * which accompanies this distribution, and is available at 6765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * http://www.eclipse.org/legal/epl-v10.html 7765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * 8765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Contributors: 9765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Google, Inc. - initial API and implementation 10765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye *******************************************************************************/ 11765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyepackage org.eclipse.wb.internal.core.utils.check; 12765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 13765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyeimport java.text.MessageFormat; 14765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 15765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye/** 16765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * <code>Assert</code> is useful for for embedding runtime sanity checks in code. The predicate 17765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * methods all test a condition and throw some type of unchecked exception if the condition does not 18765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * hold. 19765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * <p> 20765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Assertion failure exceptions, like most runtime exceptions, are thrown when something is 21765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * misbehaving. Assertion failures are invariably unspecified behavior; consequently, clients should 22765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * never rely on these being thrown (and certainly should not being catching them specifically). 23765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * 24765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @author scheglov_ke 25765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @coverage core.util 26765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 27765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyepublic final class Assert { 28765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 29765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 30765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // Constructor 31765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 32765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 33765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye private Assert() { 34765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 35765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 36765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 37765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 38765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // "legal" 39765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 40765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 41765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye /** 42765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Asserts that an argument is legal. If the given boolean is not <code>true</code>, an 43765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * <code>IllegalArgumentException</code> is thrown. 44765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * 45765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param expression 46765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the boolean expression of the check 47765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @return <code>true</code> if the check passes (does not return if the check fails) 48765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @exception IllegalArgumentException 49765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * if the legality test failed 50765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 51765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public static boolean isLegal(boolean expression) { 52765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return isLegal(expression, ""); //$NON-NLS-1$ 53765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 54765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 55765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye /** 56765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Asserts that an argument is legal. If the given boolean is not <code>true</code>, an 57765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * <code>IllegalArgumentException</code> is thrown. The given message is included in that 58765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * exception, to aid debugging. 59765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * 60765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param expression 61765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the boolean expression of the check 62765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param message 63765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the message to include in the exception 64765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @return <code>true</code> if the check passes (does not return if the check fails) 65765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @exception IllegalArgumentException 66765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * if the legality test failed 67765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 68765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public static boolean isLegal(boolean expression, String message) { 69765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye if (!expression) { 70765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye throw new IllegalArgumentException(message); 71765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 72765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return expression; 73765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 74765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 75765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 76765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 77765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // "null" 78765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 79765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 80765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye /** 81765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Asserts that the given object is <code>null</code>. If this is not the case, some kind of 82765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * unchecked exception is thrown. 83765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * 84765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param object 85765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the value to test 86765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 87765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public static void isNull(Object object) { 88765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye isNull(object, ""); //$NON-NLS-1$ 89765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 90765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 91765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye /** 92765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Asserts that the given object is <code>null</code>. If this is not the case, some kind of 93765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * unchecked exception is thrown. The given message is included in that exception, to aid 94765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * debugging. 95765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * 96765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param object 97765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the value to test 98765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param message 99765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the message to include in the exception 100765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 101765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public static void isNull(Object object, String message) { 102765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye if (object != null) { 103765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye throw new AssertionFailedException("null argument expected: " + message); //$NON-NLS-1$ 104765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 105765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 106765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 107765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye /** 108765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Asserts that the given object is not <code>null</code>. If this is not the case, some kind of 109765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * unchecked exception is thrown. The given message is included in that exception, to aid 110765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * debugging. 111765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * 112765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param object 113765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the value to test 114765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param errorFormat 115765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the format of error message to produce if the check fails, as expected by 116765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * {@link String#format(String, Object...)}. For example 117765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * <code>"Execution flow problem. %s expected, but %s found."</code>. 118765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param args 119765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the arguments for {@code errorFormat} 120765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 121765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public static void isNull(Object object, String errorFormat, Object... args) { 122765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye if (object != null) { 123765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye fail("null argument expected: " + String.format(errorFormat, args)); //$NON-NLS-1$ 124765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 125765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 126765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 127765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye /** 128765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param errorFormat 129765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the format of error message suitable for {@link MessageFormat}. 130765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param errorFormat 131765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the format of error message to produce if the check fails, as expected by 132765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * {@link MessageFormat}. For example 133765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * <code>"Execution flow problem. {0} expected, but {1} found."</code>. 134765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 135765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public static void isNull2(Object object, String errorFormat, Object... args) { 136765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye if (object != null) { 137765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye String message = "null argument expected: " + MessageFormat.format(errorFormat, args); //$NON-NLS-1$ 138765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye fail(message); 139765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 140765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 141765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 142765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 143765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 144765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // not "null" 145765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 146765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 147765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye /** 148765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Asserts that the given object is not <code>null</code>. If this is not the case, some kind of 149765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * unchecked exception is thrown. 150765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * 151765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param object 152765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the value to test 153765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 154765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public static void isNotNull(Object object) { 155765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye isNotNull(object, ""); //$NON-NLS-1$ 156765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 157765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 158765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye /** 159765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Asserts that the given object is not <code>null</code>. If this is not the case, some kind of 160765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * unchecked exception is thrown. The given message is included in that exception, to aid 161765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * debugging. 162765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * 163765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param object 164765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the value to test 165765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param message 166765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the message to include in the exception 167765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 168765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public static void isNotNull(Object object, String message) { 169765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye if (object == null) { 170765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye fail("null argument: " + message); //$NON-NLS-1$ 171765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 172765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 173765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 174765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye /** 175765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Asserts that the given object is not <code>null</code>. If this is not the case, some kind of 176765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * unchecked exception is thrown. The given message is included in that exception, to aid 177765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * debugging. 178765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * 179765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param object 180765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the value to test 181765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param errorFormat 182765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the format of error message to produce if the check fails, as expected by 183765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * {@link String#format(String, Object...)}. For example 184765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * <code>"Execution flow problem. %s expected, but %s found."</code>. 185765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param args 186765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the arguments for {@code errorFormat} 187765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 188765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public static void isNotNull(Object object, String errorFormat, Object... args) { 189765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye if (object == null) { 190765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye fail("null argument: " + String.format(errorFormat, args)); //$NON-NLS-1$ 191765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 192765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 193765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 194765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye /** 195765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param errorFormat 196765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the format of error message suitable for {@link MessageFormat}. 197765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param errorFormat 198765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the format of error message to produce if the check fails, as expected by 199765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * {@link MessageFormat}. For example 200765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * <code>"Execution flow problem. {0} expected, but {1} found."</code>. 201765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 202765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public static void isNotNull2(Object object, String errorFormat, Object... args) { 203765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye if (object == null) { 204765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye String message = "null argument: " + MessageFormat.format(errorFormat, args); //$NON-NLS-1$ 205765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye fail(message); 206765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 207765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 208765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 209765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 210765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 211765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // Fail 212765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 213765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 214765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye /** 215765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Fails with given message. 216765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * 217765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param message 218765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the message to include in the exception 219765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 220765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public static void fail(String message) { 221765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye throw new AssertionFailedException(message); 222765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 223765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 224765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye /** 225765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param errorFormat 226765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the format of error message to produce if the check fails, as expected by 227765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * {@link MessageFormat}. For example <code>"{0} expected, but {1} found."</code>. 228765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 229765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public static void fail(String errorFormat, Object... args) { 230765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye String message = MessageFormat.format(errorFormat, args); 231765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye throw new AssertionFailedException(message); 232765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 233765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 234765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 235765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 236765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // "true" 237765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 238765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 239765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye /** 240765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Asserts that the given boolean is <code>true</code>. If this is not the case, some kind of 241765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * unchecked exception is thrown. 242765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * 243765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param expression 244765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the boolean expression of the check 245765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @return <code>true</code> if the check passes (does not return if the check fails) 246765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 247765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public static boolean isTrue(boolean expression) { 248765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return isTrue(expression, ""); //$NON-NLS-1$ 249765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 250765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 251765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye /** 252765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Asserts that the given boolean is <code>true</code>. If this is not the case, some kind of 253765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * unchecked exception is thrown. The given message is included in that exception, to aid 254765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * debugging. 255765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * 256765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param expression 257765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the boolean expression of the check 258765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param message 259765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the message to include in the exception 260765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @return <code>true</code> if the check passes (does not return if the check fails) 261765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 262765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public static boolean isTrue(boolean expression, String message) { 263765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye if (!expression) { 264765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye fail("assertion failed: " + message); //$NON-NLS-1$ 265765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 266765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return expression; 267765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 268765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 269765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye /** 270765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Asserts that the given boolean is <code>true</code>. If this is not the case, some kind of 271765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * unchecked exception is thrown. The given message is included in that exception, to aid 272765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * debugging. 273765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * 274765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param expression 275765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the boolean expression of the check 276765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param errorFormat 277765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the format of error message to produce if the check fails, as expected by 278765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * {@link String#format(String, Object...)}. For example 279765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * <code>"Execution flow problem. %s expected, but %s found."</code>. 280765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param args 281765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the arguments for {@code errorFormat} 282765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @return <code>true</code> if the check passes (does not return if the check fails) 283765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 284765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public static boolean isTrue(boolean expression, String errorFormat, Object... args) { 285765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye if (!expression) { 286765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye fail("assertion failed: " + String.format(errorFormat, args)); //$NON-NLS-1$ 287765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 288765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return expression; 289765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 290765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 291765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye /** 292765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Asserts that the given boolean is <code>true</code>. If this is not the case, some kind of 293765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * unchecked exception is thrown. The given message is included in that exception, to aid 294765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * debugging. 295765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * 296765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param expression 297765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the boolean expression to check. 298765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param errorFormat 299765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the format of error message to produce if the check fails, as expected by 300765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * {@link MessageFormat}. For example <code>"{0} expected, but {1} found."</code>. 301765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 302765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public static boolean isTrue2(boolean expression, String errorFormat, Object... args) { 303765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye if (!expression) { 304765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye fail(errorFormat, args); 305765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 306765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return expression; 307765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 308765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 309765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 310765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 311765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // equals 312765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 313765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 314765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye /** 315765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Asserts that given actual value equals expected value. If this is not the case, some kind of 316765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * unchecked exception is thrown. 317765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * 318765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param expected 319765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the expected value 320765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param the 321765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * actual value to check 322765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 323765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public static void equals(int expected, int actual) { 324765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye equals(expected, actual, expected + " expected, but " + actual + " found"); 325765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 326765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 327765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye /** 328765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Asserts that given actual value equals expected value. If this is not the case, some kind of 329765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * unchecked exception is thrown. The given message is included in that exception, to aid 330765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * debugging. 331765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * 332765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param expected 333765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the expected value 334765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param the 335765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * actual value to check 336765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @param message 337765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * the message to include in the exception 338765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 339765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public static void equals(int expected, int actual, String message) { 340765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye if (expected != actual) { 341765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye fail("assertation failed: " + message); 342765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 343765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 344765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 345765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 346765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 347765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // instanceOf 348765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 349765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 350765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye /** 351765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Asserts that given object is not <code>null</code> and has class compatible with given. 352765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 353765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public static void instanceOf(Class<?> expectedClass, Object o) { 354765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye if (o == null) { 355765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye fail(expectedClass.getName() + " expected, but 'null' found."); 356765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 357765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye if (!expectedClass.isAssignableFrom(o.getClass())) { 358765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye fail(expectedClass.getName() + " expected, but " + o.getClass().getName() + " found."); 359765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 360765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 361765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye} 362