1ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair/*
2ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * Copyright 2007 the original author or authors.
3ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair *
4ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * Licensed under the Apache License, Version 2.0 (the "License");
5ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * you may not use this file except in compliance with the License.
6ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * You may obtain a copy of the License at
7ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair *
8ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair *      http://www.apache.org/licenses/LICENSE-2.0
9ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair *
10ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * Unless required by applicable law or agreed to in writing, software
11ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * distributed under the License is distributed on an "AS IS" BASIS,
12ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * See the License for the specific language governing permissions and
14ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * limitations under the License.
15ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair */
16ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismairpackage org.mockftpserver.core.util;
17ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair
18ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismairimport java.util.Collection;
19ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismairimport java.util.Map;
20ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair
21ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair/**
22ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * Provides static helper methods to make runtime assertions. Throws an
23ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * <code>AssertFailedException</code> when the assertion fails. All methods are static.
24ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair *
25ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * @version $Revision$ - $Date$
26ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair *
27ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair * @author Chris Mair
28ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair */
29ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismairpublic final class Assert {
30ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair
31ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair    /**
32ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair     * Verify that arg is null. Throw an AssertFailedException if it is not null.
33ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair     * @param arg - the method parameter value
34ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair     * @param argName - the name of the parameter; used in the exception message
35ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair     * @throws AssertFailedException - if arg is not null
36ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair     */
37ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair    public static void isNull(Object arg, String argName) {
38ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair        if (arg != null) {
39ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair            throw new AssertFailedException("The value for \"" + argName + "\" must be null");
40ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair        }
41ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair    }
42ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair
43ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	/**
44ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 * Verify that arg is not null. Throw an AssertFailedException if it is null.
45ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 * @param arg - the method parameter value
46ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair     * @param argName - the name of the parameter; used in the exception message
47ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 * @throws AssertFailedException - if arg is null
48ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 */
49ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair    public static void notNull(Object arg, String argName) {
50ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair		if (arg == null) {
51ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair            throw new AssertFailedException("The value of \"" + argName + "\" is null");
52ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair		}
53ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	}
54ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair
55ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	/**
56ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 * Verify that condition is true. Throw an AssertFailedException if it is false.
57ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 * @param condition - the condition that should be true
58ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 * @throws AssertFailedException - if condition is false
59ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 */
60ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	public static void isTrue(boolean condition, String message) {
61ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair		if (!condition) {
62ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair			throw new AssertFailedException(message);
63ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair		}
64ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	}
65ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair
66ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	/**
67ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 * Verify that condition is false. Throw an AssertFailedException if it is true.
68ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 * @param condition - the condition that should be false
69ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 * @throws AssertFailedException - if condition is true
70ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 */
71ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	public static void isFalse(boolean condition, String message) {
72ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair		if (condition) {
73ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair			throw new AssertFailedException(message);
74ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair		}
75ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	}
76ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair
77ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	/**
78ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 * Verify that the collection is not null or empty. Throw an
79ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 * AssertFailedException if it is null or empty.
80ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 * @param collection - the Collection
81ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair     * @param argName - the name of the parameter; used in the exception message
82ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 * @throws AssertFailedException - if collection is null or empty
83ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 */
84ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair    public static void notNullOrEmpty(Collection collection, String argName) {
85ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair        notNull(collection, argName);
86ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair		if (collection.isEmpty()) {
87ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair            throw new AssertFailedException("The \"" + argName + "\" Collection is empty");
88ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair		}
89ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	}
90ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair
91ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	/**
92ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 * Verify that the Map is not null or empty. Throw an AssertFailedException
93ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 * if it is null or empty.
94ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 * @param map - the Map
95ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair     * @param argName - the name of the parameter; used in the exception message
96ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 * @throws AssertFailedException - if map is null or empty
97ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 */
98ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair    public static void notNullOrEmpty(Map map, String argName) {
99ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair        notNull(map, argName);
100ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair		if (map.isEmpty()) {
101ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair            throw new AssertFailedException("The \"" + argName + "\" Map is empty");
102ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair		}
103ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	}
104ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair
105ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	/**
106ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 * Verify that the array is not null or empty. Throw an
107ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 * AssertFailedException if it is null or empty.
108ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 * @param array - the array
109ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair     * @param argName - the name of the parameter; used in the exception message
110ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 * @throws AssertFailedException - if array is null or empty
111ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 */
112ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair    public static void notNullOrEmpty(Object[] array, String argName) {
113ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair        notNull(array, argName);
114ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair		if (array.length == 0) {
115ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair            throw new AssertFailedException("The \"" + argName + "\" array is empty");
116ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair		}
117ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	}
118ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair
119ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	/**
120ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 * Verify that the String is not null or empty. Throw an
121ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 * AssertFailedException if it is null or empty.
122ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 * @param string - the String
123ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair     * @param argName - the name of the parameter; used in the exception message
124ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 * @throws AssertFailedException - if string is null or empty
125ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 */
126ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair    public static void notNullOrEmpty(String string, String argName) {
127ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair        notNull(string, argName);
128ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair		if (string.trim().length() == 0) {
129ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair            throw new AssertFailedException("The \"" + argName + "\" String is empty");
130ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair		}
131ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	}
132ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair
133ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	/**
134ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 * Private constructor. All methods are static
135ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	 */
136ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	private Assert() {
137ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair	}
138ad39334d4c363c6ada5863d0bb3184f5f4699d69chrismair}
139