177391c2a01ce1fed085906743cc240a4d58edd92chrismair/*
277391c2a01ce1fed085906743cc240a4d58edd92chrismair * Copyright 2007 the original author or authors.
377391c2a01ce1fed085906743cc240a4d58edd92chrismair *
477391c2a01ce1fed085906743cc240a4d58edd92chrismair * Licensed under the Apache License, Version 2.0 (the "License");
577391c2a01ce1fed085906743cc240a4d58edd92chrismair * you may not use this file except in compliance with the License.
677391c2a01ce1fed085906743cc240a4d58edd92chrismair * You may obtain a copy of the License at
777391c2a01ce1fed085906743cc240a4d58edd92chrismair *
877391c2a01ce1fed085906743cc240a4d58edd92chrismair *      http://www.apache.org/licenses/LICENSE-2.0
977391c2a01ce1fed085906743cc240a4d58edd92chrismair *
1077391c2a01ce1fed085906743cc240a4d58edd92chrismair * Unless required by applicable law or agreed to in writing, software
1177391c2a01ce1fed085906743cc240a4d58edd92chrismair * distributed under the License is distributed on an "AS IS" BASIS,
1277391c2a01ce1fed085906743cc240a4d58edd92chrismair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1377391c2a01ce1fed085906743cc240a4d58edd92chrismair * See the License for the specific language governing permissions and
1477391c2a01ce1fed085906743cc240a4d58edd92chrismair * limitations under the License.
1577391c2a01ce1fed085906743cc240a4d58edd92chrismair */
1677391c2a01ce1fed085906743cc240a4d58edd92chrismairpackage org.mockftpserver.core.util;
1777391c2a01ce1fed085906743cc240a4d58edd92chrismair
1877391c2a01ce1fed085906743cc240a4d58edd92chrismairimport java.util.Collection;
1977391c2a01ce1fed085906743cc240a4d58edd92chrismairimport java.util.Map;
2077391c2a01ce1fed085906743cc240a4d58edd92chrismair
2177391c2a01ce1fed085906743cc240a4d58edd92chrismair/**
2277391c2a01ce1fed085906743cc240a4d58edd92chrismair * Provides static helper methods to make runtime assertions. Throws an
2377391c2a01ce1fed085906743cc240a4d58edd92chrismair * <code>AssertFailedException</code> when the assertion fails. All methods are static.
2477391c2a01ce1fed085906743cc240a4d58edd92chrismair *
2577391c2a01ce1fed085906743cc240a4d58edd92chrismair * @version $Revision$ - $Date$
2677391c2a01ce1fed085906743cc240a4d58edd92chrismair *
2777391c2a01ce1fed085906743cc240a4d58edd92chrismair * @author Chris Mair
2877391c2a01ce1fed085906743cc240a4d58edd92chrismair */
2977391c2a01ce1fed085906743cc240a4d58edd92chrismairpublic final class Assert {
3077391c2a01ce1fed085906743cc240a4d58edd92chrismair
3177391c2a01ce1fed085906743cc240a4d58edd92chrismair    /**
3277391c2a01ce1fed085906743cc240a4d58edd92chrismair     * Verify that arg is null. Throw an AssertFailedException if it is not null.
3377391c2a01ce1fed085906743cc240a4d58edd92chrismair     * @param arg - the method parameter value
3477391c2a01ce1fed085906743cc240a4d58edd92chrismair     * @param argName - the name of the parameter; used in the exception message
3577391c2a01ce1fed085906743cc240a4d58edd92chrismair     * @throws AssertFailedException - if arg is not null
3677391c2a01ce1fed085906743cc240a4d58edd92chrismair     */
3777391c2a01ce1fed085906743cc240a4d58edd92chrismair    public static void isNull(Object arg, String argName) {
3877391c2a01ce1fed085906743cc240a4d58edd92chrismair        if (arg != null) {
3977391c2a01ce1fed085906743cc240a4d58edd92chrismair            throw new AssertFailedException("The value for \"" + argName + "\" must be null");
4077391c2a01ce1fed085906743cc240a4d58edd92chrismair        }
4177391c2a01ce1fed085906743cc240a4d58edd92chrismair    }
4277391c2a01ce1fed085906743cc240a4d58edd92chrismair
4377391c2a01ce1fed085906743cc240a4d58edd92chrismair	/**
4477391c2a01ce1fed085906743cc240a4d58edd92chrismair	 * Verify that arg is not null. Throw an AssertFailedException if it is null.
4577391c2a01ce1fed085906743cc240a4d58edd92chrismair	 * @param arg - the method parameter value
4677391c2a01ce1fed085906743cc240a4d58edd92chrismair     * @param argName - the name of the parameter; used in the exception message
4777391c2a01ce1fed085906743cc240a4d58edd92chrismair	 * @throws AssertFailedException - if arg is null
4877391c2a01ce1fed085906743cc240a4d58edd92chrismair	 */
4977391c2a01ce1fed085906743cc240a4d58edd92chrismair    public static void notNull(Object arg, String argName) {
5077391c2a01ce1fed085906743cc240a4d58edd92chrismair		if (arg == null) {
5177391c2a01ce1fed085906743cc240a4d58edd92chrismair            throw new AssertFailedException("The value of \"" + argName + "\" is null");
5277391c2a01ce1fed085906743cc240a4d58edd92chrismair		}
5377391c2a01ce1fed085906743cc240a4d58edd92chrismair	}
5477391c2a01ce1fed085906743cc240a4d58edd92chrismair
5577391c2a01ce1fed085906743cc240a4d58edd92chrismair	/**
5677391c2a01ce1fed085906743cc240a4d58edd92chrismair	 * Verify that condition is true. Throw an AssertFailedException if it is false.
5777391c2a01ce1fed085906743cc240a4d58edd92chrismair	 * @param condition - the condition that should be true
5877391c2a01ce1fed085906743cc240a4d58edd92chrismair	 * @throws AssertFailedException - if condition is false
5977391c2a01ce1fed085906743cc240a4d58edd92chrismair	 */
6077391c2a01ce1fed085906743cc240a4d58edd92chrismair	public static void isTrue(boolean condition, String message) {
6177391c2a01ce1fed085906743cc240a4d58edd92chrismair		if (!condition) {
6277391c2a01ce1fed085906743cc240a4d58edd92chrismair			throw new AssertFailedException(message);
6377391c2a01ce1fed085906743cc240a4d58edd92chrismair		}
6477391c2a01ce1fed085906743cc240a4d58edd92chrismair	}
6577391c2a01ce1fed085906743cc240a4d58edd92chrismair
6677391c2a01ce1fed085906743cc240a4d58edd92chrismair	/**
6777391c2a01ce1fed085906743cc240a4d58edd92chrismair	 * Verify that condition is false. Throw an AssertFailedException if it is true.
6877391c2a01ce1fed085906743cc240a4d58edd92chrismair	 * @param condition - the condition that should be false
6977391c2a01ce1fed085906743cc240a4d58edd92chrismair	 * @throws AssertFailedException - if condition is true
7077391c2a01ce1fed085906743cc240a4d58edd92chrismair	 */
7177391c2a01ce1fed085906743cc240a4d58edd92chrismair	public static void isFalse(boolean condition, String message) {
7277391c2a01ce1fed085906743cc240a4d58edd92chrismair		if (condition) {
7377391c2a01ce1fed085906743cc240a4d58edd92chrismair			throw new AssertFailedException(message);
7477391c2a01ce1fed085906743cc240a4d58edd92chrismair		}
7577391c2a01ce1fed085906743cc240a4d58edd92chrismair	}
7677391c2a01ce1fed085906743cc240a4d58edd92chrismair
7777391c2a01ce1fed085906743cc240a4d58edd92chrismair	/**
7877391c2a01ce1fed085906743cc240a4d58edd92chrismair	 * Verify that the collection is not null or empty. Throw an
7977391c2a01ce1fed085906743cc240a4d58edd92chrismair	 * AssertFailedException if it is null or empty.
8077391c2a01ce1fed085906743cc240a4d58edd92chrismair	 * @param collection - the Collection
8177391c2a01ce1fed085906743cc240a4d58edd92chrismair     * @param argName - the name of the parameter; used in the exception message
8277391c2a01ce1fed085906743cc240a4d58edd92chrismair	 * @throws AssertFailedException - if collection is null or empty
8377391c2a01ce1fed085906743cc240a4d58edd92chrismair	 */
8477391c2a01ce1fed085906743cc240a4d58edd92chrismair    public static void notNullOrEmpty(Collection collection, String argName) {
8577391c2a01ce1fed085906743cc240a4d58edd92chrismair        notNull(collection, argName);
8677391c2a01ce1fed085906743cc240a4d58edd92chrismair		if (collection.isEmpty()) {
8777391c2a01ce1fed085906743cc240a4d58edd92chrismair            throw new AssertFailedException("The \"" + argName + "\" Collection is empty");
8877391c2a01ce1fed085906743cc240a4d58edd92chrismair		}
8977391c2a01ce1fed085906743cc240a4d58edd92chrismair	}
9077391c2a01ce1fed085906743cc240a4d58edd92chrismair
9177391c2a01ce1fed085906743cc240a4d58edd92chrismair	/**
9277391c2a01ce1fed085906743cc240a4d58edd92chrismair	 * Verify that the Map is not null or empty. Throw an AssertFailedException
9377391c2a01ce1fed085906743cc240a4d58edd92chrismair	 * if it is null or empty.
9477391c2a01ce1fed085906743cc240a4d58edd92chrismair	 * @param map - the Map
9577391c2a01ce1fed085906743cc240a4d58edd92chrismair     * @param argName - the name of the parameter; used in the exception message
9677391c2a01ce1fed085906743cc240a4d58edd92chrismair	 * @throws AssertFailedException - if map is null or empty
9777391c2a01ce1fed085906743cc240a4d58edd92chrismair	 */
9877391c2a01ce1fed085906743cc240a4d58edd92chrismair    public static void notNullOrEmpty(Map map, String argName) {
9977391c2a01ce1fed085906743cc240a4d58edd92chrismair        notNull(map, argName);
10077391c2a01ce1fed085906743cc240a4d58edd92chrismair		if (map.isEmpty()) {
10177391c2a01ce1fed085906743cc240a4d58edd92chrismair            throw new AssertFailedException("The \"" + argName + "\" Map is empty");
10277391c2a01ce1fed085906743cc240a4d58edd92chrismair		}
10377391c2a01ce1fed085906743cc240a4d58edd92chrismair	}
10477391c2a01ce1fed085906743cc240a4d58edd92chrismair
10577391c2a01ce1fed085906743cc240a4d58edd92chrismair	/**
10677391c2a01ce1fed085906743cc240a4d58edd92chrismair	 * Verify that the array is not null or empty. Throw an
10777391c2a01ce1fed085906743cc240a4d58edd92chrismair	 * AssertFailedException if it is null or empty.
10877391c2a01ce1fed085906743cc240a4d58edd92chrismair	 * @param array - the array
10977391c2a01ce1fed085906743cc240a4d58edd92chrismair     * @param argName - the name of the parameter; used in the exception message
11077391c2a01ce1fed085906743cc240a4d58edd92chrismair	 * @throws AssertFailedException - if array is null or empty
11177391c2a01ce1fed085906743cc240a4d58edd92chrismair	 */
11277391c2a01ce1fed085906743cc240a4d58edd92chrismair    public static void notNullOrEmpty(Object[] array, String argName) {
11377391c2a01ce1fed085906743cc240a4d58edd92chrismair        notNull(array, argName);
11477391c2a01ce1fed085906743cc240a4d58edd92chrismair		if (array.length == 0) {
11577391c2a01ce1fed085906743cc240a4d58edd92chrismair            throw new AssertFailedException("The \"" + argName + "\" array is empty");
11677391c2a01ce1fed085906743cc240a4d58edd92chrismair		}
11777391c2a01ce1fed085906743cc240a4d58edd92chrismair	}
11877391c2a01ce1fed085906743cc240a4d58edd92chrismair
11977391c2a01ce1fed085906743cc240a4d58edd92chrismair	/**
12077391c2a01ce1fed085906743cc240a4d58edd92chrismair	 * Verify that the String is not null or empty. Throw an
12177391c2a01ce1fed085906743cc240a4d58edd92chrismair	 * AssertFailedException if it is null or empty.
12277391c2a01ce1fed085906743cc240a4d58edd92chrismair	 * @param string - the String
12377391c2a01ce1fed085906743cc240a4d58edd92chrismair     * @param argName - the name of the parameter; used in the exception message
12477391c2a01ce1fed085906743cc240a4d58edd92chrismair	 * @throws AssertFailedException - if string is null or empty
12577391c2a01ce1fed085906743cc240a4d58edd92chrismair	 */
12677391c2a01ce1fed085906743cc240a4d58edd92chrismair    public static void notNullOrEmpty(String string, String argName) {
12777391c2a01ce1fed085906743cc240a4d58edd92chrismair        notNull(string, argName);
12877391c2a01ce1fed085906743cc240a4d58edd92chrismair		if (string.trim().length() == 0) {
12977391c2a01ce1fed085906743cc240a4d58edd92chrismair            throw new AssertFailedException("The \"" + argName + "\" String is empty");
13077391c2a01ce1fed085906743cc240a4d58edd92chrismair		}
13177391c2a01ce1fed085906743cc240a4d58edd92chrismair	}
13277391c2a01ce1fed085906743cc240a4d58edd92chrismair
13377391c2a01ce1fed085906743cc240a4d58edd92chrismair	/**
13477391c2a01ce1fed085906743cc240a4d58edd92chrismair	 * Private constructor. All methods are static
13577391c2a01ce1fed085906743cc240a4d58edd92chrismair	 */
13677391c2a01ce1fed085906743cc240a4d58edd92chrismair	private Assert() {
13777391c2a01ce1fed085906743cc240a4d58edd92chrismair	}
13877391c2a01ce1fed085906743cc240a4d58edd92chrismair}
139