001 package com.basilv.core;
002
003
004 /**
005 * Provides assertion support. A failed assertion will throw an AssertionError.
006 * <P>
007 * The methods are generally of the form: methodXXX(message, expression). If the
008 * expression fails the assertion, then the AssertionException is created using
009 * the specified message and then thrown.
010 */
011 public class Assert
012 {
013 /**
014 * Fails the assertion if the specified expression is false.
015 */
016 public static void isTrue(String expressionDescription, boolean expression) {
017 if (!expression) {
018 throwException(expressionDescription + " is not true.");
019 }
020 }
021
022 /**
023 * Fails the assertion if the specified expression is false.
024 */
025 public static void isTrue(boolean expression) {
026 isTrue("Expression asserted as true", expression);
027 }
028
029 /**
030 * Fails the assertion if the specified expression is true.
031 */
032 public static void isFalse(String expressionDescription, boolean expression) {
033 if (expression) {
034 throwException(expressionDescription + " is not false.");
035 }
036 }
037
038 /**
039 * Fails the assertion if the specified expression is true.
040 */
041 public static void isFalse(boolean expression) {
042 isFalse("Expression asserted as false", expression);
043 }
044
045 /**
046 * Fails the assertion if the specified object is null.
047 */
048 public static void notNull(Object evalObj) {
049 notNull("Object asserted as not null", evalObj);
050 }
051
052 /**
053 * Fails the assertion if the specified object is null.
054 */
055 public static void notNull(String objDescription, Object evalObj) {
056 if (evalObj == null) {
057 throwException(objDescription + " is null.");
058 }
059 }
060
061 /**
062 * Fails the assertion if the specified string is null or empty.
063 */
064 public static void notNullOrEmpty(String evalString) {
065 notNullOrEmpty("String asserted as not null or empty", evalString);
066 }
067
068 /**
069 * Fails the assertion if the specified string is null or empty.
070 *
071 * @param stringDescription A description of the string being evaluated.
072 * @param evalString The string to evaluate.
073 */
074 public static void notNullOrEmpty(String stringDescription, String evalString) {
075 if (StringUtilities.isNullOrEmpty(evalString)) {
076 throwException(stringDescription + " is null or empty.");
077 }
078 }
079
080 /**
081 * Fails the assertion if the integer is less than zero.
082 *
083 * @param evalInt The integer to evaluate.
084 */
085 public static void notNegative(int evalInt) {
086 notNegative("Integer value " + evalInt + " asserted as not negative", evalInt);
087 }
088
089 /**
090 * Fails the assertion if the integer is less than zero.
091 *
092 * @param intDescription A description of the integer being evaluated.
093 * @param evalInt The integer to evaluate.
094 */
095 public static void notNegative(String intDescription, int evalInt) {
096 if (evalInt < 0) {
097 throwException(intDescription + " is negative.");
098 }
099 }
100
101 /**
102 * Fails the assertion if the integer is not greater than zero.
103 *
104 * @param evalInt The integer to evaluate.
105 */
106 public static void greaterThanZero(int evalInt) {
107 greaterThanZero("Integer value " + evalInt + " asserted as greater than zero", evalInt);
108 }
109
110 /**
111 * Fails the assertion if the integer is not greater than zero.
112 *
113 * @param intDescription A description of the integer being evaluated.
114 * @param evalInt The integer to evaluate.
115 */
116 public static void greaterThanZero(String intDescription, int evalInt) {
117 if (evalInt <= 0) {
118 throwException(intDescription + " is not greater than zero.");
119 }
120 }
121
122 /**
123 * Automatically throws an AssertionException.
124 */
125 public static void shouldNotReach() {
126 shouldNotReach("Failed assertion in shouldNotReach().");
127 }
128
129 /**
130 * Automatically throws an AssertionException using the specified message.
131 */
132 public static void shouldNotReach(String message) {
133 throwException(message);
134 }
135
136 private static void throwException(String message) {
137 throw new AssertionError(message);
138 }
139
140 } // class Assert