001 /* 002 * Created on Jun 18, 2007 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with 005 * the License. You may obtain a copy of the License at 006 * 007 * http://www.apache.org/licenses/LICENSE-2.0 008 * 009 * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on 010 * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the 011 * specific language governing permissions and limitations under the License. 012 * 013 * Copyright @2007-2009 the original author or authors. 014 */ 015 package org.fest.assertions; 016 017 import static org.fest.assertions.ErrorMessages.*; 018 019 /** 020 * Understands assertion methods for <code>short</code>s. To create a new instance of this class use the 021 * method <code>{@link Assertions#assertThat(short)}</code>. 022 * 023 * @author Yvonne Wang 024 * @author David DIDIER 025 */ 026 public class ShortAssert extends PrimitiveAssert implements NumberAssert { 027 028 private static final short ZERO = (short)0; 029 030 private final short actual; 031 032 /** 033 * Creates a new </code>{@link ShortAssert}</code>. 034 * @param actual the target to verify. 035 */ 036 protected ShortAssert(short actual) { 037 this.actual = actual; 038 } 039 040 /** 041 * Sets the description of the actual value, to be used in as message of any <code>{@link AssertionError}</code> 042 * thrown when an assertion fails. This method should be called before any assertion method, otherwise any assertion 043 * failure will not show the provided description. 044 * <p> 045 * For example: 046 * <pre> 047 * assertThat(value).<strong>as</strong>("Some value").isEqualTo(otherValue); 048 * </pre> 049 * </p> 050 * @param description the description of the actual value. 051 * @return this assertion object. 052 */ 053 public ShortAssert as(String description) { 054 description(description); 055 return this; 056 } 057 058 /** 059 * Alias for <code>{@link #as(String)}</code>, since "as" is a keyword in 060 * <a href="http://groovy.codehaus.org/" target="_blank">Groovy</a>. This method should be called before any assertion 061 * method, otherwise any assertion failure will not show the provided description. 062 * <p> 063 * For example: 064 * <pre> 065 * assertThat(value).<strong>describedAs</strong>("Some value").isEqualTo(otherValue); 066 * </pre> 067 * </p> 068 * @param description the description of the actual value. 069 * @return this assertion object. 070 */ 071 public ShortAssert describedAs(String description) { 072 return as(description); 073 } 074 075 /** 076 * Sets the description of the actual value, to be used in as message of any <code>{@link AssertionError}</code> 077 * thrown when an assertion fails. This method should be called before any assertion method, otherwise any assertion 078 * failure will not show the provided description. 079 * <p> 080 * For example: 081 * <pre> 082 * assertThat(value).<strong>as</strong>(new BasicDescription("Some value")).isEqualTo(otherValue); 083 * </pre> 084 * </p> 085 * @param description the description of the actual value. 086 * @return this assertion object. 087 */ 088 public ShortAssert as(Description description) { 089 description(description); 090 return this; 091 } 092 093 /** 094 * Alias for <code>{@link #as(Description)}</code>, since "as" is a keyword in 095 * <a href="http://groovy.codehaus.org/" target="_blank">Groovy</a>. This method should be called before any assertion 096 * method, otherwise any assertion failure will not show the provided description. 097 * <p> 098 * For example: 099 * <pre> 100 * assertThat(value).<strong>describedAs</strong>(new BasicDescription("Some value")).isEqualTo(otherValue); 101 * </pre> 102 * </p> 103 * @param description the description of the actual value. 104 * @return this assertion object. 105 */ 106 public ShortAssert describedAs(Description description) { 107 return as(description); 108 } 109 110 /** 111 * Verifies that the actual <code>short</code> value is equal to the given one. 112 * @param expected the value to compare the actual one to. 113 * @return this assertion object. 114 * @throws AssertionError if the actual <code>short</code> value is not equal to the given one. 115 */ 116 public ShortAssert isEqualTo(short expected) { 117 if (actual == expected) return this; 118 failIfCustomMessageIsSet(); 119 throw failure(unexpectedNotEqual(actual, expected)); 120 } 121 122 /** 123 * Verifies that the actual <code>short</code> value is not equal to the given one. 124 * @param other the given value. 125 * @return this assertion object. 126 * @throws AssertionError if the actual <code>short</code> value is equal to the given one. 127 */ 128 public ShortAssert isNotEqualTo(short other) { 129 if (actual != other) return this; 130 failIfCustomMessageIsSet(); 131 throw failure(unexpectedEqual(actual, other)); 132 } 133 134 /** 135 * Verifies that the actual <code>short</code> value is greater than the given one. 136 * @param other the given value. 137 * @return this assertion object. 138 * @throws AssertionError if the actual <code>short</code> value is not greater than the given one. 139 */ 140 public ShortAssert isGreaterThan(short other) { 141 if (actual > other) return this; 142 failIfCustomMessageIsSet(); 143 throw failure(unexpectedLessThanOrEqualTo(actual, other)); 144 } 145 146 /** 147 * Verifies that the actual <code>short</code> value is less than the given one. 148 * @param other the given value. 149 * @return this assertion object. 150 * @throws AssertionError if the actual <code>short</code> value is not less than the given one. 151 */ 152 public ShortAssert isLessThan(short other) { 153 if (actual < other) return this; 154 failIfCustomMessageIsSet(); 155 throw failure(unexpectedGreaterThanOrEqualTo(actual, other)); 156 } 157 158 /** 159 * Verifies that the actual <code>short</code> value is greater or equal to the given one. 160 * @param other the given value. 161 * @return this assertion object. 162 * @throws AssertionError if the actual <code>short</code> value is not greater than or equal to the given one. 163 */ 164 public ShortAssert isGreaterThanOrEqualTo(short other) { 165 if (actual >= other) return this; 166 failIfCustomMessageIsSet(); 167 throw failure(unexpectedLessThan(actual, other)); 168 } 169 170 /** 171 * Verifies that the actual <code>short</code> value is less or equal to the given one. 172 * @param other the given value. 173 * @return this assertion object. 174 * @throws AssertionError if the actual <code>short</code> value is not less than or equal to the given one. 175 */ 176 public ShortAssert isLessThanOrEqualTo(short other) { 177 if (actual <= other) return this; 178 failIfCustomMessageIsSet(); 179 throw failure(unexpectedGreaterThan(actual, other)); 180 } 181 182 /** 183 * Verifies that the actual <code>short</code> value is equal to zero. 184 * @return this assertion object. 185 * @throws AssertionError if the actual <code>short</code> value is not equal to zero. 186 */ 187 public ShortAssert isZero() { 188 return isEqualTo(ZERO); 189 } 190 191 /** 192 * Verifies that the actual <code>short</code> value is positive. 193 * @return this assertion object. 194 * @throws AssertionError if the actual <code>short</code> value is not positive. 195 */ 196 public ShortAssert isPositive() { 197 return isGreaterThan(ZERO); 198 } 199 200 /** 201 * Verifies that the actual <code>short</code> value is negative. 202 * @return this assertion object. 203 * @throws AssertionError if the actual <code>short</code> value is not negative. 204 */ 205 public ShortAssert isNegative() { 206 return isLessThan(ZERO); 207 } 208 209 /** {@inheritDoc} */ 210 public ShortAssert overridingErrorMessage(String message) { 211 replaceDefaultErrorMessagesWith(message); 212 return this; 213 } 214 }