/* * Created on Jan 10, 2007 * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. * * Copyright @2007-2013 the original author or authors. */ package org.fest.assertions; import org.fest.util.Files; import org.junit.Test; import java.awt.image.BufferedImage; import java.math.BigDecimal; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Map; import static java.awt.image.BufferedImage.TYPE_INT_RGB; import static java.lang.Boolean.FALSE; import static junit.framework.Assert.*; import static org.fest.util.Lists.newArrayList; import static org.fest.util.Maps.newHashMap; import static org.fest.util.Sets.newHashSet; /** * Tests for all the overloaded versions of {@code assertThat} in {@link Assertions}. * * @author Yvonne Wang * @author Alex Ruiz */ public class Assertions_assertThat_Test { @Test public void should_return_BigDecimalAssert_if_argument_is_BigDecimal() { assertObjectIsInstanceOfType(Assertions.assertThat(new BigDecimal("8")), BigDecimalAssert.class); } @Test public void should_return_BooleanArrayAssert_if_argument_is_array_of_boolean() { boolean[] booleans = new boolean[]{false}; assertObjectIsInstanceOfType(Assertions.assertThat(booleans), BooleanArrayAssert.class); } @Test public void should_return_BooleanAssert_if_argument_is_boolean() { assertObjectIsInstanceOfType(Assertions.assertThat(false), BooleanAssert.class); } @Test public void should_return_BooleanAssert_if_argument_is_Boolean() { assertObjectIsInstanceOfType(Assertions.assertThat(FALSE), BooleanAssert.class); } @Test public void should_return_ByteArrayAssert_if_argument_is_array_of_byte() { byte[] bytes = new byte[]{0}; assertObjectIsInstanceOfType(Assertions.assertThat(bytes), ByteArrayAssert.class); } @Test public void should_return_ByteAssert_if_argument_is_byte() { byte b = 0; assertObjectIsInstanceOfType(Assertions.assertThat(b), ByteAssert.class); } @Test public void should_return_ByteAssert_if_argument_is_Byte() { byte b = 0; assertObjectIsInstanceOfType(Assertions.assertThat(new Byte(b)), ByteAssert.class); } @Test public void should_return_CharArrayAssert_if_argument_is_array_of_char() { char[] chars = new char[]{0}; assertObjectIsInstanceOfType(Assertions.assertThat(chars), CharArrayAssert.class); } @Test public void should_return_CharAssert_if_argument_is_char() { assertObjectIsInstanceOfType(Assertions.assertThat('a'), CharAssert.class); } @Test public void should_return_CharAssert_if_argument_is_Character() { assertObjectIsInstanceOfType(Assertions.assertThat(new Character('a')), CharAssert.class); } @Test public void should_return_CollectionAssert_if_argument_is_Collection() { HashSet<Object> set = newHashSet(); assertObjectIsInstanceOfType(Assertions.assertThat(set), CollectionAssert.class); } @Test public void should_return_ListAssert_if_argument_is_List() { ArrayList<Object> actual = newArrayList(); assertObjectIsInstanceOfType(Assertions.assertThat(actual), ListAssert.class); } @Test public void should_return_IteratorAssert_if_argument_is_Iterator() { List<String> list = newArrayList(); list.add("Frodo"); IteratorAssert assertion = Assertions.assertThat(list.iterator()); assertObjectIsInstanceOfType(assertion, IteratorAssert.class); } @Test public void should_return_DoubleArrayAssert_if_argument_is_array_of_double() { double[] doubles = new double[]{0}; assertObjectIsInstanceOfType(Assertions.assertThat(doubles), DoubleArrayAssert.class); } @Test public void should_return_DoubleAssert_if_argument_is_double() { assertObjectIsInstanceOfType(Assertions.assertThat(86.0d), DoubleAssert.class); } @Test public void should_return_DoubleAssert_if_argument_is_Double() { assertObjectIsInstanceOfType(Assertions.assertThat(new Double(86.0d)), DoubleAssert.class); } @Test public void should_return_FileAssert_if_argument_is_File() { assertObjectIsInstanceOfType(Assertions.assertThat(Files.temporaryFolder()), FileAssert.class); } @Test public void should_return_FloatArrayAssert_if_argument_is_array_of_float() { float[] floats = new float[]{0f}; assertObjectIsInstanceOfType(Assertions.assertThat(floats), FloatArrayAssert.class); } @Test public void should_return_FloatAssert_if_argument_is_float() { assertObjectIsInstanceOfType(Assertions.assertThat(86.0f), FloatAssert.class); } @Test public void should_return_FloatAssert_if_argument_is_Float() { assertObjectIsInstanceOfType(Assertions.assertThat(new Float(86.0f)), FloatAssert.class); } @Test public void should_always_return_given_AssertExtension() { AssertExtension extension = new AssertExtension() { }; assertSame(extension, Assertions.assertThat(extension)); } @Test public void should_return_ImageAssert_if_argument_is_BufferedImage() { BufferedImage image = new BufferedImage(10, 10, TYPE_INT_RGB); assertObjectIsInstanceOfType(Assertions.assertThat(image), ImageAssert.class); } @Test public void should_return_IntArrayAssert_if_argument_is_array_of_int() { int[] ints = new int[]{0}; assertObjectIsInstanceOfType(Assertions.assertThat(ints), IntArrayAssert.class); } @Test public void should_return_IntAssert_if_argument_is_int() { assertObjectIsInstanceOfType(Assertions.assertThat(8), IntAssert.class); } @Test public void should_return_IntAssert_if_argument_is_Integer() { assertObjectIsInstanceOfType(Assertions.assertThat(new Integer(8)), IntAssert.class); } @Test public void should_return_LongArrayAssert_if_argument_is_array_of_long() { long[] longs = new long[]{0}; assertObjectIsInstanceOfType(Assertions.assertThat(longs), LongArrayAssert.class); } @Test public void should_return_LongAssert_if_argument_is_long() { assertObjectIsInstanceOfType(Assertions.assertThat(8l), LongAssert.class); } @Test public void should_return_LongAssert_if_argument_is_Long() { assertObjectIsInstanceOfType(Assertions.assertThat(new Long(86)), LongAssert.class); } @Test public void should_return_MapAssert_if_argument_is_Map() { Map<Object, Object> map = newHashMap(); assertObjectIsInstanceOfType(Assertions.assertThat(map), MapAssert.class); } @Test public void should_return_ObjectArrayAssert_if_argument_is_array_of_Object() { String[] objects = new String[]{"One"}; assertObjectIsInstanceOfType(Assertions.assertThat(objects), ObjectArrayAssert.class); } @Test public void should_return_ObjectAssert_if_argument_is_Object() { assertObjectIsInstanceOfType(Assertions.assertThat(new Object()), ObjectAssert.class); } @Test public void should_return_ShortArrayAssert_if_argument_is_array_of_short() { short[] shorts = new short[]{0}; assertObjectIsInstanceOfType(Assertions.assertThat(shorts), ShortArrayAssert.class); } @Test public void should_return_ShortAssert_if_argument_is_short() { short s = 8; assertObjectIsInstanceOfType(Assertions.assertThat(s), ShortAssert.class); } @Test public void should_return_ShortAssert_if_argument_is_Short() { short s = 8; assertObjectIsInstanceOfType(Assertions.assertThat(new Short(s)), ShortAssert.class); } @Test public void should_return_StringAssert_if_argument_is_String() { assertObjectIsInstanceOfType(Assertions.assertThat(""), StringAssert.class); } @Test public void should_return_ThrowableAssert_if_argument_is_Throwable() { assertObjectIsInstanceOfType(Assertions.assertThat(new Exception()), ThrowableAssert.class); } @Test public void should_return_IteratorAssert_if_actual_is_Iterable() { Iterable<?> iterable = newArrayList(); assertObjectIsInstanceOfType(Assertions.assertThat(iterable), IteratorAssert.class); } @Test public void should_return_IteratorAssert_with_null_Iterator_if_actual_is_a_null_Iterable() { Iterable<?> iterable = null; IteratorAssert assertions = Assertions.assertThat(iterable); assertNull(assertions.actual); } private void assertObjectIsInstanceOfType(Object object, Class<?> type) { assertEquals(type, object.getClass()); } }