/** * 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 2012-2016 the original author or authors. */ package org.assertj.db.util; import org.assertj.db.common.AbstractTest; import org.assertj.db.exception.AssertJDBException; import org.assertj.db.type.DateTimeValue; import org.assertj.db.type.DateValue; import org.assertj.db.type.TimeValue; import org.junit.Test; import java.math.BigDecimal; import java.math.BigInteger; import java.sql.Date; import java.sql.Time; import java.sql.Timestamp; import java.util.UUID; import java.util.concurrent.atomic.AtomicLong; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.db.api.Assertions.bytesContentFromClassPathOf; /** * Tests on {@code areEqual} method for {@code Object}s. * * @author RĂ©gis Pouiller */ public class Values_AreEqual_Object_And_Object_Test extends AbstractTest { /** * This method tests the {@code areEqual} method for {@code Object}s with {@code null}. */ @Test public void test_are_equal_for_null() throws Exception { assertThat(Values.areEqual(getValue(null, null), (Object) null)).isTrue(); assertThat(Values.areEqual(getValue(null, null), (Object) "")).isFalse(); assertThat(Values.areEqual(getValue(null, new Exception()), (Object) null)).isFalse(); } /** * This method tests the {@code areEqual} method for {@code Object}s with booleans. */ @Test public void test_are_equal_for_booleans() throws Exception { assertThat(Values.areEqual(getValue(null, true), (Object) true)).isTrue(); assertThat(Values.areEqual(getValue(null, true), (Object) false)).isFalse(); assertThat(Values.areEqual(getValue(null, false), (Object) true)).isFalse(); assertThat(Values.areEqual(getValue(null, false), (Object) false)).isTrue(); assertThat(Values.areEqual(getValue(null, true), (Object) null)).isFalse(); assertThat(Values.areEqual(getValue(null, false), (Object) null)).isFalse(); } /** * This method tests the {@code areEqual} method for {@code BigInteger}s. */ @Test public void test_are_equal_for_biginteger() throws Exception { assertThat(Values.areEqual(getValue(null, 1), (Object) new BigInteger("1"))).isTrue(); assertThat(Values.areEqual(getValue(null, 1), (Object) new BigInteger("2"))).isFalse(); } /** * This method tests the {@code areEqual} method for {@code BigDecimal}s. */ @Test public void test_are_equal_for_bigdecimal() throws Exception { assertThat(Values.areEqual(getValue(null, 1), new BigDecimal("1"))).isTrue(); assertThat(Values.areEqual(getValue(null, new BigDecimal("1")), new BigDecimal("1"))).isTrue(); assertThat(Values.areEqual(getValue(null, 1), new BigDecimal("2"))).isFalse(); assertThat(Values.areEqual(getValue(null, new BigDecimal("1")), new BigDecimal("2"))).isFalse(); assertThat(Values.areEqual(getValue(null, 1), (Object) null)).isFalse(); assertThat(Values.areEqual(getValue(null, new BigDecimal("1")), (Object) null)).isFalse(); } /** * This method tests the {@code areEqual} method for another type of value and {@code Float}s. */ @Test public void test_are_equal_for_other_and_float() throws Exception { assertThat(Values.areEqual(getValue(null, 1F), (Object) 1)).isTrue(); assertThat(Values.areEqual(getValue(null, 2F), (Object) 1)).isFalse(); assertThat(Values.areEqual(getValue(null, 1F), (Object) 1L)).isTrue(); assertThat(Values.areEqual(getValue(null, 2F), (Object) 1L)).isFalse(); assertThat(Values.areEqual(getValue(null, 1F), (Object) 1F)).isTrue(); assertThat(Values.areEqual(getValue(null, 2F), (Object) 1F)).isFalse(); assertThat(Values.areEqual(getValue(null, 1F), (Object) 1D)).isTrue(); assertThat(Values.areEqual(getValue(null, 2F), (Object) 1D)).isFalse(); assertThat(Values.areEqual(getValue(null, 1.5F), (Object) 1.5F)).isTrue(); assertThat(Values.areEqual(getValue(null, 2.5F), (Object) 1.5F)).isFalse(); assertThat(Values.areEqual(getValue(null, 1.5F), (Object) 1.5D)).isTrue(); assertThat(Values.areEqual(getValue(null, 2.5F), (Object) 1.5D)).isFalse(); } /** * This method tests the {@code areEqual} method for another type of value and {@code Double}s. */ @Test public void test_are_equal_for_other_and_double() throws Exception { assertThat(Values.areEqual(getValue(null, 1D), (Object) 1)).isTrue(); assertThat(Values.areEqual(getValue(null, 2D), (Object) 1)).isFalse(); assertThat(Values.areEqual(getValue(null, 1D), (Object) 1L)).isTrue(); assertThat(Values.areEqual(getValue(null, 2D), (Object) 1L)).isFalse(); assertThat(Values.areEqual(getValue(null, 1D), (Object) 1F)).isTrue(); assertThat(Values.areEqual(getValue(null, 2D), (Object) 1F)).isFalse(); assertThat(Values.areEqual(getValue(null, 1D), (Object) 1D)).isTrue(); assertThat(Values.areEqual(getValue(null, 2D), (Object) 1D)).isFalse(); assertThat(Values.areEqual(getValue(null, 1.5D), (Object) 1.5F)).isTrue(); assertThat(Values.areEqual(getValue(null, 2.5D), (Object) 1.5F)).isFalse(); assertThat(Values.areEqual(getValue(null, 1.5D), (Object) 1.5D)).isTrue(); assertThat(Values.areEqual(getValue(null, 2.5D), (Object) 1.5D)).isFalse(); } /** * This method tests the {@code areEqual} method for another type of value and {@code BigDecimal}s. */ @Test public void test_are_equal_for_other_and_bigdecimal() throws Exception { assertThat(Values.areEqual(getValue(null, new BigDecimal("1")), (Object) 1)).isTrue(); assertThat(Values.areEqual(getValue(null, new BigDecimal("2")), (Object) 1)).isFalse(); assertThat(Values.areEqual(getValue(null, new BigDecimal("1")), (Object) 1L)).isTrue(); assertThat(Values.areEqual(getValue(null, new BigDecimal("2")), (Object) 1L)).isFalse(); assertThat(Values.areEqual(getValue(null, new BigDecimal("1")), (Object) 1F)).isTrue(); assertThat(Values.areEqual(getValue(null, new BigDecimal("2")), (Object) 1F)).isFalse(); assertThat(Values.areEqual(getValue(null, new BigDecimal("1")), (Object) 1D)).isTrue(); assertThat(Values.areEqual(getValue(null, new BigDecimal("2")), (Object) 1D)).isFalse(); assertThat(Values.areEqual(getValue(null, new BigDecimal("1.5")), (Object) 1.5F)).isTrue(); assertThat(Values.areEqual(getValue(null, new BigDecimal("2.5")), (Object) 1.5F)).isFalse(); assertThat(Values.areEqual(getValue(null, new BigDecimal("1.5")), (Object) 1.5D)).isTrue(); assertThat(Values.areEqual(getValue(null, new BigDecimal("2.5")), (Object) 1.5D)).isFalse(); } /** * This method tests the {@code areEqual} method for another type of value and {@code Byte}s. */ @Test public void test_are_equal_for_other_and_byte() throws Exception { assertThat(Values.areEqual(getValue(null, (byte) 1), (Object) 1)).isTrue(); assertThat(Values.areEqual(getValue(null, (byte) 2), (Object) 1)).isFalse(); assertThat(Values.areEqual(getValue(null, (byte) 1), (Object) 1L)).isTrue(); assertThat(Values.areEqual(getValue(null, (byte) 2), (Object) 1L)).isFalse(); assertThat(Values.areEqual(getValue(null, (byte) 1), (Object) 1F)).isTrue(); assertThat(Values.areEqual(getValue(null, (byte) 2), (Object) 1F)).isFalse(); assertThat(Values.areEqual(getValue(null, (byte) 1), (Object) 1D)).isTrue(); assertThat(Values.areEqual(getValue(null, (byte) 2), (Object) 1D)).isFalse(); } /** * This method tests the {@code areEqual} method for another type of value and {@code Short}s. */ @Test public void test_are_equal_for_other_and_short() throws Exception { assertThat(Values.areEqual(getValue(null, (short) 1), (Object) 1)).isTrue(); assertThat(Values.areEqual(getValue(null, (short) 2), (Object) 1)).isFalse(); assertThat(Values.areEqual(getValue(null, (short) 1), (Object) 1L)).isTrue(); assertThat(Values.areEqual(getValue(null, (short) 2), (Object) 1L)).isFalse(); assertThat(Values.areEqual(getValue(null, (short) 1), (Object) 1F)).isTrue(); assertThat(Values.areEqual(getValue(null, (short) 2), (Object) 1F)).isFalse(); assertThat(Values.areEqual(getValue(null, (short) 1), (Object) 1D)).isTrue(); assertThat(Values.areEqual(getValue(null, (short) 2), (Object) 1D)).isFalse(); } /** * This method tests the {@code areEqual} method for another type of value and {@code Integer}s. */ @Test public void test_are_equal_for_other_and_integer() throws Exception { assertThat(Values.areEqual(getValue(null, 1), (Object) 1)).isTrue(); assertThat(Values.areEqual(getValue(null, 2), (Object) 1)).isFalse(); assertThat(Values.areEqual(getValue(null, 1), (Object) 1L)).isTrue(); assertThat(Values.areEqual(getValue(null, 2), (Object) 1L)).isFalse(); assertThat(Values.areEqual(getValue(null, 1), (Object) 1F)).isTrue(); assertThat(Values.areEqual(getValue(null, 2), (Object) 1F)).isFalse(); assertThat(Values.areEqual(getValue(null, 1), (Object) 1D)).isTrue(); assertThat(Values.areEqual(getValue(null, 2), (Object) 1D)).isFalse(); } /** * This method tests the {@code areEqual} method for another type of value and {@code Long}s. */ @Test public void test_are_equal_for_other_and_long() throws Exception { assertThat(Values.areEqual(getValue(null, (long) 1), (Object) 1)).isTrue(); assertThat(Values.areEqual(getValue(null, (long) 2), (Object) 1)).isFalse(); assertThat(Values.areEqual(getValue(null, (long) 1), (Object) 1L)).isTrue(); assertThat(Values.areEqual(getValue(null, (long) 2), (Object) 1L)).isFalse(); assertThat(Values.areEqual(getValue(null, (long) 1), (Object) 1F)).isTrue(); assertThat(Values.areEqual(getValue(null, (long) 2), (Object) 1F)).isFalse(); assertThat(Values.areEqual(getValue(null, (long) 1), (Object) 1D)).isTrue(); assertThat(Values.areEqual(getValue(null, (long) 2), (Object) 1D)).isFalse(); } /** * This method tests the {@code areEqual} method for arrays of {@code byte}s. */ @Test public void test_are_equal_for_bytes() throws Exception { byte[] bytes = bytesContentFromClassPathOf("test.txt"); Object goodBytes = new byte[] { 'T', 'e', 'x', 't', ' ', 'f', 'o', 'r', ' ', 't', 'e', 's', 't', 's' }; Object badBytes = new byte[] { 'T', 'e', 'x', 't', ' ', 'f', 'o', 'r', ' ', ' ', 'e', 's', 't', 's' }; assertThat(Values.areEqual(getValue(null, bytes), goodBytes)).isTrue(); assertThat(Values.areEqual(getValue(null, bytes), badBytes)).isFalse(); assertThat(Values.areEqual(getValue(null, bytes), (Object) "")).isFalse(); } /** * This method tests the {@code areEqual} method for {@code String}s. */ @Test public void test_are_equal_for_string() throws Exception { assertThat(Values.areEqual(getValue(null, "text"), (Object) "text")).isTrue(); assertThat(Values.areEqual(getValue(null, "Text"), (Object) "text")).isFalse(); assertThat(Values.areEqual(getValue(null, "Text"), (Object) 1)).isFalse(); } /** * This method tests the {@code areEqual} method for {@code UUID}s. */ @Test public void test_are_equal_for_UUID() throws Exception { assertThat(Values.areEqual(getValue(null, UUID.fromString("30B443AE-C0C9-4790-9BEC-CE1380808435")), (Object) UUID.fromString("30B443AE-C0C9-4790-9BEC-CE1380808435"))).isTrue(); assertThat(Values.areEqual(getValue(null, UUID.fromString("30B443AE-C0C9-4790-9BEC-CE1380808435")), (Object) UUID.fromString("16319617-AE95-4087-9264-D3D21BF611B6"))).isFalse(); assertThat(Values.areEqual(getValue(null, UUID.fromString("30B443AE-C0C9-4790-9BEC-CE1380808435")), (Object) 1)).isFalse(); assertThat(Values.areEqual(getValue(null, UUID.fromString("30B443AE-C0C9-4790-9BEC-CE1380808435")), (Object) null)).isFalse(); assertThat(Values.areEqual(getValue(null, UUID.fromString("30B443AE-C0C9-4790-9BEC-CE1380808435")), (Object) "30B443AE-C0C9-4790-9BEC-CE1380808435")).isTrue(); assertThat(Values.areEqual(getValue(null, UUID.fromString("30B443AE-C0C9-4790-9BEC-CE1380808435")), (Object) "30B443AE-C0C9-4790-9BED-CE1380808435")).isFalse(); } /** * This method tests the {@code areEqual} method for {@code DateValue}s. */ @Test public void test_are_equal_for_dates() throws Exception { assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) DateValue.of(2007, 12, 23))).isTrue(); assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) DateValue.of(2007, 1, 2))).isFalse(); assertThat(Values.areEqual(getValue(null, ""), (Object) DateValue.of(2007, 12, 23))).isFalse(); assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) null)).isFalse(); assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2007-12-23")).isTrue(); assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2007-12-23T00:00")).isTrue(); assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2007-12-23T00:00:00")).isTrue(); assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2007-12-23T00:00:00.000000000")).isTrue(); } /** * This method tests the {@code areEqual} method for {@code DateValue}s. */ @Test public void test_are_equal_for_timestamp_and_dates() throws Exception { assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 00:00:00.000000000")), (Object) DateValue.of(2007, 12, 23))) .isTrue(); assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 00:00:00.000000000")), (Object) DateValue.of(2007, 1, 2))) .isFalse(); assertThat(Values.areEqual(getValue(null, ""), (Object) DateValue.of(2007, 12, 23))).isFalse(); assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 00:00:00.000000000")), (Object) null)).isFalse(); assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 00:00:00.000000000")), (Object) DateValue.of(2007, 12, 2))) .isFalse(); assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 00:00:00.000000000")), (Object) DateValue.of(2007, 1, 23))) .isFalse(); assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 00:00:00.000000000")), (Object) DateValue.of(2006, 12, 23))) .isFalse(); } /** * This method tests the {@code areEqual} method for {@code TimeValue}s. */ @Test public void test_are_equal_for_times() throws Exception { assertThat(Values.areEqual(getValue(null, Time.valueOf("09:01:06")), (Object) TimeValue.of(9, 1, 6))).isTrue(); assertThat(Values.areEqual(getValue(null, Time.valueOf("09:01:06")), (Object) TimeValue.of(9, 1, 5))).isFalse(); assertThat(Values.areEqual(getValue(null, ""), (Object) TimeValue.of(9, 1, 6))).isFalse(); assertThat(Values.areEqual(getValue(null, Time.valueOf("09:01:06")), (Object) null)).isFalse(); assertThat(Values.areEqual(getValue(null, Time.valueOf("09:01:06")), (Object) "09:01:06")).isTrue(); assertThat(Values.areEqual(getValue(null, Time.valueOf("09:01:06")), (Object) "09:01:06.000000000")).isTrue(); } /** * This method tests the {@code areEqual} method for {@code TimeValue}s. */ @Test public void test_are_equal_for_timestamps() throws Exception { assertThat( Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 09:01:06.000000003")), (Object) DateTimeValue.of(DateValue.of(2007, 12, 23), TimeValue.of(9, 1, 6, 3)))).isTrue(); assertThat( Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 09:01:06.000000003")), (Object) DateTimeValue.of(DateValue.of(2007, 12, 23), TimeValue.of(9, 1, 5, 3)))).isFalse(); assertThat(Values.areEqual(getValue(null, ""), (Object) DateTimeValue.of(DateValue.of(2007, 12, 23), TimeValue.of(9, 1, 6, 3)))) .isFalse(); assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 09:01:06.000000003")), (Object) null)).isFalse(); assertThat( Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 09:01:06.000000003")), (Object) "2007-12-23T09:01:06.000000003")).isTrue(); } /** * This method tests the {@code areEqual} method for another type of value and {@code Float}s. */ @Test public void test_are_equal_for_float_and_string() throws Exception { assertThat(Values.areEqual(getValue(null, 1F), (Object) "1")).isTrue(); assertThat(Values.areEqual(getValue(null, 2F), (Object) "1")).isFalse(); assertThat(Values.areEqual(getValue(null, 1.5F), (Object) "1.5")).isTrue(); assertThat(Values.areEqual(getValue(null, 2.5F), (Object) "1.5")).isFalse(); } /** * This method tests the {@code areEqual} method for another type of value and {@code Double}s. */ @Test public void test_are_equal_for_double_and_string() throws Exception { assertThat(Values.areEqual(getValue(null, 1D), (Object) "1")).isTrue(); assertThat(Values.areEqual(getValue(null, 2D), (Object) "1")).isFalse(); assertThat(Values.areEqual(getValue(null, 1.5D), (Object) "1.5")).isTrue(); assertThat(Values.areEqual(getValue(null, 2.5D), (Object) "1.5")).isFalse(); } /** * This method tests the {@code areEqual} method for another type of value and {@code BigInteger}s. */ @Test public void test_are_equal_for_biginteger_and_string() throws Exception { assertThat(Values.areEqual(getValue(null, new BigInteger("1")), (Object) "1")).isTrue(); assertThat(Values.areEqual(getValue(null, new BigInteger("2")), (Object) "1")).isFalse(); } /** * This method tests the {@code areEqual} method for another type of value and {@code BigDecimal}s. */ @Test public void test_are_equal_for_bigdecimal_and_string() throws Exception { assertThat(Values.areEqual(getValue(null, new BigDecimal("1")), (Object) "1")).isTrue(); assertThat(Values.areEqual(getValue(null, new BigDecimal("2")), (Object) "1")).isFalse(); assertThat(Values.areEqual(getValue(null, new BigDecimal("1.5")), (Object) "1.5")).isTrue(); assertThat(Values.areEqual(getValue(null, new BigDecimal("2.5")), (Object) "1.5")).isFalse(); } /** * This method tests the {@code areEqual} method for another type of value and {@code Byte}s. */ @Test public void test_are_equal_for_byte_and_string() throws Exception { assertThat(Values.areEqual(getValue(null, (byte) 1), (Object) "1")).isTrue(); assertThat(Values.areEqual(getValue(null, (byte) 2), (Object) "1")).isFalse(); } /** * This method tests the {@code areEqual} method for another type of value and {@code Short}s. */ @Test public void test_are_equal_for_short_and_string() throws Exception { assertThat(Values.areEqual(getValue(null, (short) 1), (Object) "1")).isTrue(); assertThat(Values.areEqual(getValue(null, (short) 2), (Object) "1")).isFalse(); } /** * This method tests the {@code areEqual} method for another type of value and {@code Int}s. */ @Test public void test_are_equal_for_int_and_string() throws Exception { assertThat(Values.areEqual(getValue(null, 1), (Object) "1")).isTrue(); assertThat(Values.areEqual(getValue(null, 2), (Object) "1")).isFalse(); } /** * This method tests the {@code areEqual} method for another type of value and {@code Long}s. */ @Test public void test_are_equal_for_long_and_string() throws Exception { assertThat(Values.areEqual(getValue(null, (long) 1), (Object) "1")).isTrue(); assertThat(Values.areEqual(getValue(null, (long) 2), (Object) "1")).isFalse(); } /** * This method tests the {@code areEqual} method for another type of value and {@code AtomicLong}s. */ @Test public void test_are_equal_for_atomiclong_and_string() throws Exception { assertThat(Values.areEqual(getValue(null, new AtomicLong(1)), (Object) "1")).isFalse(); assertThat(Values.areEqual(getValue(null, new AtomicLong(2)), (Object) "1")).isFalse(); } /** * This method should fail because the expected value ("***") if not parsable to do the comparison. */ @Test(expected = AssertJDBException.class) public void should_fail_because_string_is_not_parseable() throws Exception { Values.areEqual(getValue(null, 1), (Object) "***"); } /** * This method tests the {@code areEqual} method for {@code TimeValue}s. */ @Test public void test_are_equal_for_times_in_string() throws Exception { assertThat(Values.areEqual(getValue(null, Time.valueOf("09:01:06")), (Object) "09:01:06")).isTrue(); assertThat(Values.areEqual(getValue(null, Time.valueOf("09:01:00")), (Object) "09:01:00")).isTrue(); assertThat(Values.areEqual(getValue(null, Time.valueOf("09:01:00")), (Object) "09:01")).isTrue(); assertThat(Values.areEqual(getValue(null, Time.valueOf("09:01:06")), (Object) "09:01:05")).isFalse(); assertThat(Values.areEqual(getValue(null, Time.valueOf("09:01:06")), (Object) "09:02:06")).isFalse(); assertThat(Values.areEqual(getValue(null, Time.valueOf("09:01:06")), (Object) "10:01:06")).isFalse(); assertThat(Values.areEqual(getValue(null, Time.valueOf("09:01:06")), (Object) "09:01:06.000000003")).isFalse(); } /** * This method should fail because the expected value ("***") is not parsable to do the comparison. */ @Test(expected = AssertJDBException.class) public void should_fail_because_string_is_not_parseable_in_time() throws Exception { Values.areEqual(getValue(null, Time.valueOf("09:01:06")), (Object) "***"); } /** * This method tests the {@code areEqual} method for {@code TimeValue}s. */ @Test public void test_are_equal_for_dates_in_string() throws Exception { assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2007-12-23")).isTrue(); assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2007-12-23T00:00")).isTrue(); assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2007-12-23T00:00:00")).isTrue(); assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2007-12-23T00:00:00.000000000")).isTrue(); assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2007-12-24")).isFalse(); assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2007-01-23")).isFalse(); assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2008-12-23")).isFalse(); assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2007-12-23T00:01")).isFalse(); assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2007-12-23T01:00")).isFalse(); assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2007-12-24T00:00")).isFalse(); assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2007-01-23T00:00")).isFalse(); assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2008-12-23T00:00")).isFalse(); assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2007-12-23T00:00:01")).isFalse(); assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2007-12-23T00:01:00")).isFalse(); assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2007-12-23T01:00:00")).isFalse(); assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2007-12-24T00:00:00")).isFalse(); assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2007-01-23T00:00:00")).isFalse(); assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2008-12-23T00:00:00")).isFalse(); assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2007-12-23T00:00:00.000000001")).isFalse(); assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2007-12-23T00:00:01.000000000")).isFalse(); assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2007-12-23T00:01:00.000000000")).isFalse(); assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2007-12-23T01:00:00.000000000")).isFalse(); assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2007-12-24T00:00:00.000000000")).isFalse(); assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2007-01-23T00:00:00.000000000")).isFalse(); assertThat(Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "2008-12-23T00:00:00.000000000")).isFalse(); } /** * This method should fail because the expected value ("***") is not parsable to do the comparison. */ @Test(expected = AssertJDBException.class) public void should_fail_because_string_is_not_parseable_in_date() throws Exception { Values.areEqual(getValue(null, Date.valueOf("2007-12-23")), (Object) "***"); } /** * This method tests the {@code areEqual} method for {@code TimeValue}s. */ @Test public void test_are_equal_for_datestimes() throws Exception { assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 09:01:06.000000003")), (Object) "2007-12-23T09:01:06.000000003")).isTrue(); assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 00:00:00.000000000")), (Object) "2007-12-23T00:00:00.000000000")).isTrue(); assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 00:00:00")), (Object) "2007-12-23T00:00:00")).isTrue(); assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 00:00:00")), (Object) "2007-12-23T00:00")).isTrue(); assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 00:00:00")), (Object) "2007-12-23")).isTrue(); assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 09:01:06.000000003")), (Object) "2007-12-23T09:01:06.000000004")).isFalse(); assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 09:01:06.000000003")), (Object) "2007-12-23T09:01:07.000000003")).isFalse(); assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 09:01:06.000000003")), (Object) "2007-12-23T09:02:06.000000003")).isFalse(); assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 09:01:06.000000003")), (Object) "2007-12-23T10:01:06.000000003")).isFalse(); assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 09:01:06.000000003")), (Object) "2007-12-24T09:01:06.000000003")).isFalse(); assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 09:01:06.000000003")), (Object) "2007-01-23T09:01:06.000000003")).isFalse(); assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 09:01:06.000000003")), (Object) "2008-12-23T09:01:06.000000003")).isFalse(); assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 00:00:00.000000000")), (Object) "2007-12-23T00:00:00.000000001")).isFalse(); assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 00:00:00.000000000")), (Object) "2007-12-23T00:00:01.000000000")).isFalse(); assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 00:00:00.000000000")), (Object) "2007-12-23T00:01:00.000000000")).isFalse(); assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 00:00:00.000000000")), (Object) "2007-12-23T01:00:00.000000000")).isFalse(); assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 00:00:00.000000000")), (Object) "2007-12-24T00:00:00.000000000")).isFalse(); assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 00:00:00.000000000")), (Object) "2007-01-23T00:00:00.000000000")).isFalse(); assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 00:00:00.000000000")), (Object) "2008-12-23T00:00:00.000000000")).isFalse(); assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 00:00:00")), (Object) "2007-12-23T00:00:00.000000001")) .isFalse(); assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 00:00:00")), (Object) "2007-12-23T00:00:01.000000000")) .isFalse(); assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 00:00:00")), (Object) "2007-12-23T00:01:00.000000000")) .isFalse(); assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 00:00:00")), (Object) "2007-12-23T01:00:00.000000000")) .isFalse(); assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 00:00:00")), (Object) "2007-12-24T00:00:00.000000000")) .isFalse(); assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 00:00:00")), (Object) "2007-01-23T00:00:00.000000000")) .isFalse(); assertThat(Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 00:00:00")), (Object) "2008-12-23T00:00:00.000000000")) .isFalse(); } /** * This method should fail because the expected value ("***") is not parsable to do the comparison. */ @Test(expected = AssertJDBException.class) public void should_fail_because_string_is_not_parseable_in_datetime() throws Exception { Values.areEqual(getValue(null, Timestamp.valueOf("2007-12-23 09:01:06.000000003")), (Object) "***"); } }