12ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair/*
22ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair * Copyright 2007 the original author or authors.
32ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair *
42ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair * Licensed under the Apache License, Version 2.0 (the "License");
52ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair * you may not use this file except in compliance with the License.
62ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair * You may obtain a copy of the License at
72ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair *
82ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair *      http://www.apache.org/licenses/LICENSE-2.0
92ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair *
102ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair * Unless required by applicable law or agreed to in writing, software
112ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair * distributed under the License is distributed on an "AS IS" BASIS,
122ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
132ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair * See the License for the specific language governing permissions and
142ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair * limitations under the License.
152ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair */
162ab05e83458f35931075adca0d7b0fce4ea7cccbchrismairpackage org.mockftpserver.core.util;
172ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair
182ab05e83458f35931075adca0d7b0fce4ea7cccbchrismairimport java.util.Collection;
192ab05e83458f35931075adca0d7b0fce4ea7cccbchrismairimport java.util.Map;
202ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair
212ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair/**
222ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair * Provides static helper methods to make runtime assertions. Throws an
232ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair * <code>AssertFailedException</code> when the assertion fails. All methods are static.
242ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair *
252ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair * @version $Revision$ - $Date$
262ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair *
272ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair * @author Chris Mair
282ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair */
292ab05e83458f35931075adca0d7b0fce4ea7cccbchrismairpublic final class Assert {
302ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair
312ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair    /**
322ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair     * Verify that arg is null. Throw an AssertFailedException if it is not null.
332ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair     * @param arg - the method parameter value
342ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair     * @param argName - the name of the parameter; used in the exception message
352ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair     * @throws AssertFailedException - if arg is not null
362ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair     */
372ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair    public static void isNull(Object arg, String argName) {
382ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair        if (arg != null) {
392ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair            throw new AssertFailedException("The value for \"" + argName + "\" must be null");
402ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair        }
412ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair    }
422ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair
432ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	/**
442ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 * Verify that arg is not null. Throw an AssertFailedException if it is null.
452ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 * @param arg - the method parameter value
462ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair     * @param argName - the name of the parameter; used in the exception message
472ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 * @throws AssertFailedException - if arg is null
482ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 */
492ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair    public static void notNull(Object arg, String argName) {
502ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair		if (arg == null) {
512ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair            throw new AssertFailedException("The value of \"" + argName + "\" is null");
522ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair		}
532ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	}
542ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair
552ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	/**
562ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 * Verify that condition is true. Throw an AssertFailedException if it is false.
572ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 * @param condition - the condition that should be true
582ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 * @throws AssertFailedException - if condition is false
592ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 */
602ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	public static void isTrue(boolean condition, String message) {
612ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair		if (!condition) {
622ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair			throw new AssertFailedException(message);
632ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair		}
642ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	}
652ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair
662ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	/**
672ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 * Verify that condition is false. Throw an AssertFailedException if it is true.
682ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 * @param condition - the condition that should be false
692ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 * @throws AssertFailedException - if condition is true
702ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 */
712ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	public static void isFalse(boolean condition, String message) {
722ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair		if (condition) {
732ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair			throw new AssertFailedException(message);
742ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair		}
752ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	}
762ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair
772ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	/**
782ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 * Verify that the collection is not null or empty. Throw an
792ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 * AssertFailedException if it is null or empty.
802ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 * @param collection - the Collection
812ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair     * @param argName - the name of the parameter; used in the exception message
822ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 * @throws AssertFailedException - if collection is null or empty
832ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 */
842ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair    public static void notNullOrEmpty(Collection collection, String argName) {
852ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair        notNull(collection, argName);
862ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair		if (collection.isEmpty()) {
872ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair            throw new AssertFailedException("The \"" + argName + "\" Collection is empty");
882ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair		}
892ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	}
902ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair
912ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	/**
922ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 * Verify that the Map is not null or empty. Throw an AssertFailedException
932ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 * if it is null or empty.
942ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 * @param map - the Map
952ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair     * @param argName - the name of the parameter; used in the exception message
962ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 * @throws AssertFailedException - if map is null or empty
972ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 */
982ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair    public static void notNullOrEmpty(Map map, String argName) {
992ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair        notNull(map, argName);
1002ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair		if (map.isEmpty()) {
1012ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair            throw new AssertFailedException("The \"" + argName + "\" Map is empty");
1022ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair		}
1032ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	}
1042ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair
1052ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	/**
1062ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 * Verify that the array is not null or empty. Throw an
1072ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 * AssertFailedException if it is null or empty.
1082ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 * @param array - the array
1092ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair     * @param argName - the name of the parameter; used in the exception message
1102ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 * @throws AssertFailedException - if array is null or empty
1112ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 */
1122ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair    public static void notNullOrEmpty(Object[] array, String argName) {
1132ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair        notNull(array, argName);
1142ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair		if (array.length == 0) {
1152ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair            throw new AssertFailedException("The \"" + argName + "\" array is empty");
1162ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair		}
1172ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	}
1182ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair
1192ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	/**
1202ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 * Verify that the String is not null or empty. Throw an
1212ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 * AssertFailedException if it is null or empty.
1222ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 * @param string - the String
1232ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair     * @param argName - the name of the parameter; used in the exception message
1242ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 * @throws AssertFailedException - if string is null or empty
1252ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 */
1262ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair    public static void notNullOrEmpty(String string, String argName) {
1272ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair        notNull(string, argName);
1282ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair		if (string.trim().length() == 0) {
1292ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair            throw new AssertFailedException("The \"" + argName + "\" String is empty");
1302ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair		}
1312ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	}
1322ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair
1332ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	/**
1342ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 * Private constructor. All methods are static
1352ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	 */
1362ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	private Assert() {
1372ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair	}
1382ab05e83458f35931075adca0d7b0fce4ea7cccbchrismair}
139