153295844df24dff0a1f59e1104795e640b54c2efchrismair/*
253295844df24dff0a1f59e1104795e640b54c2efchrismair * Copyright 2007 the original author or authors.
353295844df24dff0a1f59e1104795e640b54c2efchrismair *
453295844df24dff0a1f59e1104795e640b54c2efchrismair * Licensed under the Apache License, Version 2.0 (the "License");
553295844df24dff0a1f59e1104795e640b54c2efchrismair * you may not use this file except in compliance with the License.
653295844df24dff0a1f59e1104795e640b54c2efchrismair * You may obtain a copy of the License at
753295844df24dff0a1f59e1104795e640b54c2efchrismair *
853295844df24dff0a1f59e1104795e640b54c2efchrismair *      http://www.apache.org/licenses/LICENSE-2.0
953295844df24dff0a1f59e1104795e640b54c2efchrismair *
1053295844df24dff0a1f59e1104795e640b54c2efchrismair * Unless required by applicable law or agreed to in writing, software
1153295844df24dff0a1f59e1104795e640b54c2efchrismair * distributed under the License is distributed on an "AS IS" BASIS,
1253295844df24dff0a1f59e1104795e640b54c2efchrismair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1353295844df24dff0a1f59e1104795e640b54c2efchrismair * See the License for the specific language governing permissions and
1453295844df24dff0a1f59e1104795e640b54c2efchrismair * limitations under the License.
1553295844df24dff0a1f59e1104795e640b54c2efchrismair */
1653295844df24dff0a1f59e1104795e640b54c2efchrismairpackage org.mockftpserver.core.util;
1753295844df24dff0a1f59e1104795e640b54c2efchrismair
1853295844df24dff0a1f59e1104795e640b54c2efchrismairimport java.util.Collection;
1953295844df24dff0a1f59e1104795e640b54c2efchrismairimport java.util.Map;
2053295844df24dff0a1f59e1104795e640b54c2efchrismair
2153295844df24dff0a1f59e1104795e640b54c2efchrismair/**
2253295844df24dff0a1f59e1104795e640b54c2efchrismair * Provides static helper methods to make runtime assertions. Throws an
2353295844df24dff0a1f59e1104795e640b54c2efchrismair * <code>AssertFailedException</code> when the assertion fails. All methods are static.
2453295844df24dff0a1f59e1104795e640b54c2efchrismair *
2553295844df24dff0a1f59e1104795e640b54c2efchrismair * @version $Revision$ - $Date$
2653295844df24dff0a1f59e1104795e640b54c2efchrismair *
2753295844df24dff0a1f59e1104795e640b54c2efchrismair * @author Chris Mair
2853295844df24dff0a1f59e1104795e640b54c2efchrismair */
2953295844df24dff0a1f59e1104795e640b54c2efchrismairpublic final class Assert {
3053295844df24dff0a1f59e1104795e640b54c2efchrismair
3153295844df24dff0a1f59e1104795e640b54c2efchrismair    /**
3253295844df24dff0a1f59e1104795e640b54c2efchrismair     * Verify that arg is null. Throw an AssertFailedException if it is not null.
3353295844df24dff0a1f59e1104795e640b54c2efchrismair     * @param arg - the method parameter value
3453295844df24dff0a1f59e1104795e640b54c2efchrismair     * @param argName - the name of the parameter; used in the exception message
3553295844df24dff0a1f59e1104795e640b54c2efchrismair     * @throws AssertFailedException - if arg is not null
3653295844df24dff0a1f59e1104795e640b54c2efchrismair     */
3753295844df24dff0a1f59e1104795e640b54c2efchrismair    public static void isNull(Object arg, String argName) {
3853295844df24dff0a1f59e1104795e640b54c2efchrismair        if (arg != null) {
3953295844df24dff0a1f59e1104795e640b54c2efchrismair            throw new AssertFailedException("The value for \"" + argName + "\" must be null");
4053295844df24dff0a1f59e1104795e640b54c2efchrismair        }
4153295844df24dff0a1f59e1104795e640b54c2efchrismair    }
4253295844df24dff0a1f59e1104795e640b54c2efchrismair
4353295844df24dff0a1f59e1104795e640b54c2efchrismair	/**
4453295844df24dff0a1f59e1104795e640b54c2efchrismair	 * Verify that arg is not null. Throw an AssertFailedException if it is null.
4553295844df24dff0a1f59e1104795e640b54c2efchrismair	 * @param arg - the method parameter value
4653295844df24dff0a1f59e1104795e640b54c2efchrismair     * @param argName - the name of the parameter; used in the exception message
4753295844df24dff0a1f59e1104795e640b54c2efchrismair	 * @throws AssertFailedException - if arg is null
4853295844df24dff0a1f59e1104795e640b54c2efchrismair	 */
4953295844df24dff0a1f59e1104795e640b54c2efchrismair    public static void notNull(Object arg, String argName) {
5053295844df24dff0a1f59e1104795e640b54c2efchrismair		if (arg == null) {
5153295844df24dff0a1f59e1104795e640b54c2efchrismair            throw new AssertFailedException("The value of \"" + argName + "\" is null");
5253295844df24dff0a1f59e1104795e640b54c2efchrismair		}
5353295844df24dff0a1f59e1104795e640b54c2efchrismair	}
5453295844df24dff0a1f59e1104795e640b54c2efchrismair
5553295844df24dff0a1f59e1104795e640b54c2efchrismair	/**
5653295844df24dff0a1f59e1104795e640b54c2efchrismair	 * Verify that condition is true. Throw an AssertFailedException if it is false.
5753295844df24dff0a1f59e1104795e640b54c2efchrismair	 * @param condition - the condition that should be true
5853295844df24dff0a1f59e1104795e640b54c2efchrismair	 * @throws AssertFailedException - if condition is false
5953295844df24dff0a1f59e1104795e640b54c2efchrismair	 */
6053295844df24dff0a1f59e1104795e640b54c2efchrismair	public static void isTrue(boolean condition, String message) {
6153295844df24dff0a1f59e1104795e640b54c2efchrismair		if (!condition) {
6253295844df24dff0a1f59e1104795e640b54c2efchrismair			throw new AssertFailedException(message);
6353295844df24dff0a1f59e1104795e640b54c2efchrismair		}
6453295844df24dff0a1f59e1104795e640b54c2efchrismair	}
6553295844df24dff0a1f59e1104795e640b54c2efchrismair
6653295844df24dff0a1f59e1104795e640b54c2efchrismair	/**
6753295844df24dff0a1f59e1104795e640b54c2efchrismair	 * Verify that condition is false. Throw an AssertFailedException if it is true.
6853295844df24dff0a1f59e1104795e640b54c2efchrismair	 * @param condition - the condition that should be false
6953295844df24dff0a1f59e1104795e640b54c2efchrismair	 * @throws AssertFailedException - if condition is true
7053295844df24dff0a1f59e1104795e640b54c2efchrismair	 */
7153295844df24dff0a1f59e1104795e640b54c2efchrismair	public static void isFalse(boolean condition, String message) {
7253295844df24dff0a1f59e1104795e640b54c2efchrismair		if (condition) {
7353295844df24dff0a1f59e1104795e640b54c2efchrismair			throw new AssertFailedException(message);
7453295844df24dff0a1f59e1104795e640b54c2efchrismair		}
7553295844df24dff0a1f59e1104795e640b54c2efchrismair	}
7653295844df24dff0a1f59e1104795e640b54c2efchrismair
7753295844df24dff0a1f59e1104795e640b54c2efchrismair	/**
7853295844df24dff0a1f59e1104795e640b54c2efchrismair	 * Verify that the collection is not null or empty. Throw an
7953295844df24dff0a1f59e1104795e640b54c2efchrismair	 * AssertFailedException if it is null or empty.
8053295844df24dff0a1f59e1104795e640b54c2efchrismair	 * @param collection - the Collection
8153295844df24dff0a1f59e1104795e640b54c2efchrismair     * @param argName - the name of the parameter; used in the exception message
8253295844df24dff0a1f59e1104795e640b54c2efchrismair	 * @throws AssertFailedException - if collection is null or empty
8353295844df24dff0a1f59e1104795e640b54c2efchrismair	 */
8453295844df24dff0a1f59e1104795e640b54c2efchrismair    public static void notNullOrEmpty(Collection collection, String argName) {
8553295844df24dff0a1f59e1104795e640b54c2efchrismair        notNull(collection, argName);
8653295844df24dff0a1f59e1104795e640b54c2efchrismair		if (collection.isEmpty()) {
8753295844df24dff0a1f59e1104795e640b54c2efchrismair            throw new AssertFailedException("The \"" + argName + "\" Collection is empty");
8853295844df24dff0a1f59e1104795e640b54c2efchrismair		}
8953295844df24dff0a1f59e1104795e640b54c2efchrismair	}
9053295844df24dff0a1f59e1104795e640b54c2efchrismair
9153295844df24dff0a1f59e1104795e640b54c2efchrismair	/**
9253295844df24dff0a1f59e1104795e640b54c2efchrismair	 * Verify that the Map is not null or empty. Throw an AssertFailedException
9353295844df24dff0a1f59e1104795e640b54c2efchrismair	 * if it is null or empty.
9453295844df24dff0a1f59e1104795e640b54c2efchrismair	 * @param map - the Map
9553295844df24dff0a1f59e1104795e640b54c2efchrismair     * @param argName - the name of the parameter; used in the exception message
9653295844df24dff0a1f59e1104795e640b54c2efchrismair	 * @throws AssertFailedException - if map is null or empty
9753295844df24dff0a1f59e1104795e640b54c2efchrismair	 */
9853295844df24dff0a1f59e1104795e640b54c2efchrismair    public static void notNullOrEmpty(Map map, String argName) {
9953295844df24dff0a1f59e1104795e640b54c2efchrismair        notNull(map, argName);
10053295844df24dff0a1f59e1104795e640b54c2efchrismair		if (map.isEmpty()) {
10153295844df24dff0a1f59e1104795e640b54c2efchrismair            throw new AssertFailedException("The \"" + argName + "\" Map is empty");
10253295844df24dff0a1f59e1104795e640b54c2efchrismair		}
10353295844df24dff0a1f59e1104795e640b54c2efchrismair	}
10453295844df24dff0a1f59e1104795e640b54c2efchrismair
10553295844df24dff0a1f59e1104795e640b54c2efchrismair	/**
10653295844df24dff0a1f59e1104795e640b54c2efchrismair	 * Verify that the array is not null or empty. Throw an
10753295844df24dff0a1f59e1104795e640b54c2efchrismair	 * AssertFailedException if it is null or empty.
10853295844df24dff0a1f59e1104795e640b54c2efchrismair	 * @param array - the array
10953295844df24dff0a1f59e1104795e640b54c2efchrismair     * @param argName - the name of the parameter; used in the exception message
11053295844df24dff0a1f59e1104795e640b54c2efchrismair	 * @throws AssertFailedException - if array is null or empty
11153295844df24dff0a1f59e1104795e640b54c2efchrismair	 */
11253295844df24dff0a1f59e1104795e640b54c2efchrismair    public static void notNullOrEmpty(Object[] array, String argName) {
11353295844df24dff0a1f59e1104795e640b54c2efchrismair        notNull(array, argName);
11453295844df24dff0a1f59e1104795e640b54c2efchrismair		if (array.length == 0) {
11553295844df24dff0a1f59e1104795e640b54c2efchrismair            throw new AssertFailedException("The \"" + argName + "\" array is empty");
11653295844df24dff0a1f59e1104795e640b54c2efchrismair		}
11753295844df24dff0a1f59e1104795e640b54c2efchrismair	}
11853295844df24dff0a1f59e1104795e640b54c2efchrismair
11953295844df24dff0a1f59e1104795e640b54c2efchrismair	/**
12053295844df24dff0a1f59e1104795e640b54c2efchrismair	 * Verify that the String is not null or empty. Throw an
12153295844df24dff0a1f59e1104795e640b54c2efchrismair	 * AssertFailedException if it is null or empty.
12253295844df24dff0a1f59e1104795e640b54c2efchrismair	 * @param string - the String
12353295844df24dff0a1f59e1104795e640b54c2efchrismair     * @param argName - the name of the parameter; used in the exception message
12453295844df24dff0a1f59e1104795e640b54c2efchrismair	 * @throws AssertFailedException - if string is null or empty
12553295844df24dff0a1f59e1104795e640b54c2efchrismair	 */
12653295844df24dff0a1f59e1104795e640b54c2efchrismair    public static void notNullOrEmpty(String string, String argName) {
12753295844df24dff0a1f59e1104795e640b54c2efchrismair        notNull(string, argName);
12853295844df24dff0a1f59e1104795e640b54c2efchrismair		if (string.trim().length() == 0) {
12953295844df24dff0a1f59e1104795e640b54c2efchrismair            throw new AssertFailedException("The \"" + argName + "\" String is empty");
13053295844df24dff0a1f59e1104795e640b54c2efchrismair		}
13153295844df24dff0a1f59e1104795e640b54c2efchrismair	}
13253295844df24dff0a1f59e1104795e640b54c2efchrismair
13353295844df24dff0a1f59e1104795e640b54c2efchrismair	/**
13453295844df24dff0a1f59e1104795e640b54c2efchrismair	 * Private constructor. All methods are static
13553295844df24dff0a1f59e1104795e640b54c2efchrismair	 */
13653295844df24dff0a1f59e1104795e640b54c2efchrismair	private Assert() {
13753295844df24dff0a1f59e1104795e640b54c2efchrismair	}
13853295844df24dff0a1f59e1104795e640b54c2efchrismair}
139