You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ad...@apache.org on 2010/04/17 01:29:07 UTC
svn commit: r935096 - in
/ofbiz/trunk/framework/base/src/org/ofbiz/base/util: Assert.java
test/AssertTests.java
Author: adrianc
Date: Fri Apr 16 23:29:07 2010
New Revision: 935096
URL: http://svn.apache.org/viewvc?rev=935096&view=rev
Log:
An improved Assert class - replaces the one I took out.
Added:
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Assert.java
- copied, changed from r934178, ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Assert.java
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/test/AssertTests.java
- copied, changed from r934178, ofbiz/trunk/framework/base/src/org/ofbiz/base/util/test/AssertTests.java
Copied: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Assert.java (from r934178, ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Assert.java)
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Assert.java?p2=ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Assert.java&p1=ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Assert.java&r1=934178&r2=935096&rev=935096&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Assert.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/Assert.java Fri Apr 16 23:29:07 2010
@@ -17,6 +17,9 @@
package org.ofbiz.base.util;
+import java.util.Collection;
+import java.util.Map;
+
/** Basic assertions.
*
*/
@@ -24,76 +27,182 @@ public class Assert {
/**
* Tests if an argument is not null and can be cast to a specified class.
- * <p><code>Assert.argumentCanBeCastTo("foo", foo, Map.class);</code></p>
+ * <p><code>Assert.isAssignableTo("foo", foo, Foo.class);</code></p>
*
* @param argumentName
* @param argumentObject
* @param targetClass
* @throws IllegalArgumentException
*/
- public static void argumentCanBeCastTo(String argumentName, Object argumentObject, Class<?> targetClass) {
- argumentNotNull(argumentName, argumentObject);
+ public static void isAssignableTo(String argumentName, Object argumentObject, Class<?> targetClass) {
+ notNull(argumentName, argumentObject);
if (!targetClass.isAssignableFrom(argumentObject.getClass())) {
- throw new IllegalArgumentException(argumentName + " is not a " + targetClass.getName());
+ throw new IllegalArgumentException(argumentName + " cannot be assigned to " + targetClass.getName());
}
}
/**
- * Tests if an argument is not null and is equal to an object.
- * <p><code>Assert.argumentEqualsObject("foo", foo, new Foo());</code></p>
+ * Tests if an argument is not null and is an instance of a specified class.
+ * <p><code>Assert.isInstanceOf("foo", foo, Foo.class);</code></p>
*
* @param argumentName
* @param argumentObject
- * @param targetObject
+ * @param targetClass
* @throws IllegalArgumentException
*/
- public static void argumentEqualsObject(String argumentName, Object argumentObject, Object targetObject) {
- argumentNotNull(argumentName, argumentObject);
- if (!argumentObject.equals(targetObject)) {
- throw new IllegalArgumentException(argumentName + " is not equal to " + targetObject);
+ public static void isInstanceOf(String argumentName, Object argumentObject, Class<?> targetClass) {
+ notNull(argumentName, argumentObject);
+ if (!targetClass.isInstance(argumentObject)) {
+ throw new IllegalArgumentException(argumentName + " is not an instance of " + targetClass.getName());
}
}
/**
- * Tests if an argument is not null and is an instance of a class.
- * <p><code>Assert.argumentIsClass("foo", foo, HashMap.class);</code></p>
+ * Tests if an argument is not null and is an instance of a specified class.
+ * <p><code>Assert.isInstanceOf("foo", foo, Foo.class, Bar.class, ...);</code></p>
+ *
+ * @param argumentName
+ * @param argumentObject
+ * @param targetClasses
+ * @throws IllegalArgumentException
+ */
+ public static void isInstanceOf(String argumentName, Object argumentObject, Class<?>... targetClasses) {
+ notNull(argumentName, argumentObject);
+ for (int i = 0; i < targetClasses.length;) {
+ if (targetClasses[i++].isInstance(argumentObject)) {
+ return;
+ }
+ }
+ StringBuilder sb = new StringBuilder(argumentName);
+ sb.append(" must be an instance of");
+ for (int i = 0; i < targetClasses.length;) {
+ if (i != 0) {
+ sb.append(",");
+ }
+ sb.append(" ").append(targetClasses[i++].getName());
+ }
+ throw new IllegalArgumentException(sb.toString());
+ }
+
+ /**
+ * Tests if an argument is not null and is not an instance of a specified class.
+ * <p><code>Assert.isNotInstanceOf("foo", foo, Foo.class);</code></p>
*
* @param argumentName
* @param argumentObject
* @param targetClass
* @throws IllegalArgumentException
*/
- public static void argumentIsClass(String argumentName, Object argumentObject, Class<?> targetClass) {
- argumentNotNull(argumentName, argumentObject);
- if (argumentObject.getClass() != targetClass) {
- throw new IllegalArgumentException(argumentName + " is not a " + targetClass.getName());
+ public static void isNotInstanceOf(String argumentName, Object argumentObject, Class<?> targetClass) {
+ notNull(argumentName, argumentObject);
+ if (targetClass.isInstance(argumentObject)) {
+ throw new IllegalArgumentException(argumentName + " cannot be an instance of " + targetClass.getName());
}
}
/**
- * Tests an argument for <code>null</code>.
- * <p><code>Assert.argumentNotNull("foo", foo);</code></p>
+ * Tests if an argument is not null and is not an instance of a specified class.
+ * <p><code>Assert.isNotInstanceOf("foo", foo, Foo.class, Bar.class, ...);</code></p>
*
* @param argumentName
- * @param objectToTest
+ * @param argumentObject
+ * @param targetClasses
* @throws IllegalArgumentException
*/
- public static void argumentNotNull(String argumentName, Object objectToTest) {
- if (objectToTest == null) {
- throw new IllegalArgumentException(argumentName + " cannot be null");
+ public static void isNotInstanceOf(String argumentName, Object argumentObject, Class<?>... targetClasses) {
+ notNull(argumentName, argumentObject);
+ for (int i = 0; i < targetClasses.length;) {
+ Class<?> targetClass = targetClasses[i++];
+ if (targetClass.isInstance(argumentObject)) {
+ throw new IllegalArgumentException(argumentName + " cannot be an instance of " + targetClass.getName());
+ }
+ }
+ }
+
+ /**
+ * Tests if an argument is not null and is not empty.
+ * <p><code>Assert.notEmpty("foo", foo);</code></p>
+ *
+ * @param argumentName
+ * @param argumentObject
+ * @throws IllegalArgumentException
+ */
+ public static void notEmpty(String argumentName, String argumentObject) {
+ notNull(argumentName, argumentObject);
+ if (argumentObject.length() == 0) {
+ throw new IllegalArgumentException(argumentName + " cannot be empty");
+ }
+ }
+
+ /**
+ * Tests if an argument is not null and is not empty.
+ * <p><code>Assert.notEmpty("foo", foo);</code></p>
+ *
+ * @param argumentName
+ * @param argumentObject
+ * @throws IllegalArgumentException
+ */
+ public static <T extends Map<?, ?>> void notEmpty(String argumentName, T argumentObject) {
+ notNull(argumentName, argumentObject);
+ if (argumentObject.size() == 0) {
+ throw new IllegalArgumentException(argumentName + " cannot be empty");
+ }
+ }
+
+ /**
+ * Tests if an argument is not null and is not empty.
+ * <p><code>Assert.notEmpty("foo", foo);</code></p>
+ *
+ * @param argumentName
+ * @param argumentObject
+ * @throws IllegalArgumentException
+ */
+ public static <T extends Collection<?>> void notEmpty(String argumentName, T argumentObject) {
+ notNull(argumentName, argumentObject);
+ if (argumentObject.size() == 0) {
+ throw new IllegalArgumentException(argumentName + " cannot be empty");
+ }
+ }
+
+ /**
+ * Tests if an argument is not null and is not empty.
+ * <p><code>Assert.notEmpty("foo", foo);</code></p>
+ *
+ * @param argumentName
+ * @param argumentObject
+ * @throws IllegalArgumentException
+ */
+ public static <T> void notEmpty(String argumentName, T[] argumentObject) {
+ notNull(argumentName, argumentObject);
+ if (argumentObject.length == 0) {
+ throw new IllegalArgumentException(argumentName + " cannot be empty");
}
}
/**
* Tests a list of arguments for <code>null</code>.
- * <p><code>Assert.argumentsNotNull("foo", foo, "bar", bar, ...);</code></p>
+ * <p><code>Assert.notNull("foo", foo, "bar", bar, ...);</code></p>
*
* @param arguments
* @throws IllegalArgumentException
*/
- public static void argumentsNotNull(Object... arguments) {
+ public static void notNull(Object... arguments) {
for (int i = 0; i < arguments.length;) {
- argumentNotNull((String) arguments[i++], arguments[i++]);
+ notNull((String) arguments[i++], arguments[i++]);
+ }
+ }
+
+ /**
+ * Tests an argument for <code>null</code>.
+ * <p><code>Assert.notNull("foo", foo);</code></p>
+ *
+ * @param argumentName
+ * @param objectToTest
+ * @throws IllegalArgumentException
+ */
+ public static void notNull(String argumentName, Object objectToTest) {
+ if (objectToTest == null) {
+ throw new IllegalArgumentException(argumentName + " cannot be null");
}
}
Copied: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/test/AssertTests.java (from r934178, ofbiz/trunk/framework/base/src/org/ofbiz/base/util/test/AssertTests.java)
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/test/AssertTests.java?p2=ofbiz/trunk/framework/base/src/org/ofbiz/base/util/test/AssertTests.java&p1=ofbiz/trunk/framework/base/src/org/ofbiz/base/util/test/AssertTests.java&r1=934178&r2=935096&rev=935096&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/test/AssertTests.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/test/AssertTests.java Fri Apr 16 23:29:07 2010
@@ -16,10 +16,15 @@
*/
package org.ofbiz.base.util.test;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
import java.util.Map;
-import org.ofbiz.base.util.Assert;
+
import junit.framework.TestCase;
+import org.ofbiz.base.util.Assert;
+
/**
* Assert tests {@link org.ofbiz.base.util.Assert}.
*
@@ -30,73 +35,135 @@ public class AssertTests extends TestCas
super(name);
}
+ @SuppressWarnings("unchecked")
public void testAssert(){
Object testObject = new Object();
//-----------------------------------------------------------------------
try {
- Assert.argumentNotNull("foo", testObject);
+ Assert.notNull("foo", testObject);
+ } catch (Exception e) {
+ fail("notNull threw an exception - " + e);
+ }
+ try {
+ Assert.notNull("foo", null);
+ fail("notNull - IllegalArgumentException not thrown");
+ } catch (IllegalArgumentException e) {}
+
+ //-----------------------------------------------------------------------
+ try {
+ Assert.notNull("foo", testObject, "bar", testObject);
+ } catch (Exception e) {
+ fail("notNull (argument list) threw an exception - " + e);
+ }
+ try {
+ Assert.notNull("foo", testObject, "bar", null);
+ fail("notNull (argument list) - IllegalArgumentException not thrown");
+ } catch (IllegalArgumentException e) {}
+
+ //-----------------------------------------------------------------------
+ try {
+ Assert.notEmpty("foo", "foo");
} catch (Exception e) {
- fail("argumentNotNull threw an exception - " + e);
+ fail("notEmpty(String) threw an exception - " + e);
}
try {
- Assert.argumentNotNull("foo", null);
- fail("argumentNotNull - IllegalArgumentException not thrown");
+ Assert.notEmpty("foo", "");
+ fail("notEmpty(String) - IllegalArgumentException not thrown");
} catch (IllegalArgumentException e) {}
//-----------------------------------------------------------------------
+ String[] strArray = {"foo", "bar"};
+ try {
+ Assert.notEmpty("foo", strArray);
+ } catch (Exception e) {
+ fail("notEmpty(Array) threw an exception - " + e);
+ }
+ try {
+ Assert.notEmpty("foo", new String[0]);
+ fail("notEmpty(Array) - IllegalArgumentException not thrown");
+ } catch (IllegalArgumentException e) {}
+
+ //-----------------------------------------------------------------------
+ List<String> strList = new ArrayList<String>();
+ try {
+ Assert.notEmpty("foo", strList);
+ fail("notEmpty(Collection) - IllegalArgumentException not thrown");
+ } catch (IllegalArgumentException e) {}
+ strList.add("foo");
+ try {
+ Assert.notEmpty("foo", strList);
+ } catch (Exception e) {
+ fail("notEmpty(Collection) threw an exception - " + e);
+ }
+
+ //-----------------------------------------------------------------------
+ Map<String,String> strMap = new HashMap<String, String>();
+ try {
+ Assert.notEmpty("foo", strMap);
+ fail("notEmpty(Map) - IllegalArgumentException not thrown");
+ } catch (IllegalArgumentException e) {}
+ strMap.put("foo", "foo");
+ try {
+ Assert.notEmpty("foo", strMap);
+ } catch (Exception e) {
+ fail("notEmpty(Map) threw an exception - " + e);
+ }
+
+ //-----------------------------------------------------------------------
try {
- Assert.argumentsNotNull("foo", testObject, "bar", testObject);
+ Assert.isInstanceOf("foo", strMap, Map.class);
} catch (Exception e) {
- fail("argumentsNotNull threw an exception - " + e);
+ fail("isInstanceOf threw an exception - " + e);
}
try {
- Assert.argumentsNotNull("foo", testObject, "bar", null);
- fail("argumentsNotNull - IllegalArgumentException not thrown");
+ Assert.isInstanceOf("foo", strMap, AssertTests.class);
+ fail("isInstanceOf - IllegalArgumentException not thrown");
} catch (IllegalArgumentException e) {}
//-----------------------------------------------------------------------
try {
- Assert.argumentIsClass("foo", testObject, Object.class);
+ Assert.isInstanceOf("foo", strMap, String.class, Map.class);
} catch (Exception e) {
- fail("argumentIsClass threw an exception - " + e);
+ fail("isInstanceOf (argument list) threw an exception - " + e);
}
try {
- Assert.argumentIsClass("foo", testObject, AssertTests.class);
- fail("argumentIsClass - IllegalArgumentException not thrown");
+ Assert.isInstanceOf("foo", strMap, String.class, AssertTests.class);
+ fail("isInstanceOf (argument list) - IllegalArgumentException not thrown");
} catch (IllegalArgumentException e) {}
//-----------------------------------------------------------------------
try {
- Assert.argumentEqualsObject("foo", testObject, testObject);
+ Assert.isNotInstanceOf("foo", strMap, String.class);
} catch (Exception e) {
- fail("argumentEqualsObject threw an exception - " + e);
+ fail("isNotInstanceOf threw an exception - " + e);
}
try {
- Assert.argumentEqualsObject("foo", testObject, this);
- fail("argumentEqualsObject - IllegalArgumentException not thrown");
+ Assert.isNotInstanceOf("foo", strMap, Map.class);
+ fail("isNotInstanceOf - IllegalArgumentException not thrown");
} catch (IllegalArgumentException e) {}
//-----------------------------------------------------------------------
try {
- Assert.argumentEqualsObject("foo", testObject, testObject);
+ Assert.isNotInstanceOf("foo", strMap, String.class, AssertTests.class);
} catch (Exception e) {
- fail("argumentEqualsObject threw an exception - " + e);
+ fail("isNotInstanceOf (argument list) threw an exception - " + e);
}
try {
- Assert.argumentEqualsObject("foo", testObject, this);
- fail("argumentEqualsObject - IllegalArgumentException not thrown");
+ Assert.isNotInstanceOf("foo", strMap, String.class, Map.class);
+ fail("isNotInstanceOf (argument list) - IllegalArgumentException not thrown");
} catch (IllegalArgumentException e) {}
//-----------------------------------------------------------------------
try {
- Assert.argumentCanBeCastTo("foo", testObject, Object.class);
+ Assert.isAssignableTo("foo", strArray, strArray.getClass());
} catch (Exception e) {
- fail("argumentCanBeCastTo threw an exception - " + e);
+ fail("isNotInstanceOf (argument list) threw an exception - " + e);
}
try {
- Assert.argumentCanBeCastTo("foo", this, Map.class);
- fail("argumentCanBeCastTo - IllegalArgumentException not thrown");
+ Map[] mapArray = {strMap};
+ Assert.isAssignableTo("foo", strArray, mapArray.getClass());
+ fail("isNotInstanceOf (argument list) - IllegalArgumentException not thrown");
} catch (IllegalArgumentException e) {}
}
}