package de.zalando.sprocwrapper; import java.util.Calendar; import java.util.Date; import java.util.TimeZone; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import de.zalando.sprocwrapper.example.ComplexDate; import de.zalando.sprocwrapper.example.ExampleSProcServiceDateConversionImpl; import de.zalando.sprocwrapper.example.ExampleSProcServiceDateConversionOtherTimeZoneImpl; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath:backendContextTest.xml"}) public class DateConversionIT { @Autowired private ExampleSProcServiceDateConversionImpl exampleSProcServiceDateConversion; @Autowired private ExampleSProcServiceDateConversionOtherTimeZoneImpl exampleSProcServiceDateConversionOtherTimeZoneImpl; @Test public void testCheckDateWithoutTimeZone() { final Date date = new Date(); final Date checkDateWithoutTimeZone = exampleSProcServiceDateConversion.checkDateWithoutTimeZone(date); Assert.assertEquals(date, checkDateWithoutTimeZone); } @Test public void testCheckDateWithTimeZone() { final Date date = new Date(); final Date checkDateWithTimeZone = exampleSProcServiceDateConversion.checkDateWithTimeZone(date); Assert.assertEquals(date, checkDateWithTimeZone); } @Test public void testCheckDateWithoutTimeZone2() { final Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("America/Los_Angeles")); final Date date = calendar.getTime(); final Date checkDateWithTimeZone = exampleSProcServiceDateConversion.checkDateWithTimeZone(date); Assert.assertEquals(date, checkDateWithTimeZone); } @Test public void testCheckDateWithoutTimeZoneTransformation() { final Date date = new Date(); final Date checkDateWithTimeZone = exampleSProcServiceDateConversion.checkDateWithoutTimeZoneTransformed(date); Assert.assertEquals(date, checkDateWithTimeZone); } @Test public void testCheckDateWithoutTimeZoneOtherPostgresZone() { final Date date = new Date(); final Date checkDateWithoutTimeZone = exampleSProcServiceDateConversionOtherTimeZoneImpl.checkDateWithoutTimeZone(date); Assert.assertEquals(date, checkDateWithoutTimeZone); } @Test public void testCheckDateWithTimeZoneOtherPostgresZone() { final Date date = new Date(); final Date checkDateWithTimeZone = exampleSProcServiceDateConversionOtherTimeZoneImpl.checkDateWithTimeZone( date); Assert.assertEquals(date, checkDateWithTimeZone); } @Test public void testCheckDateWithoutTimeZone2OtherPostgresZone() { final Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("America/Los_Angeles")); final Date date = calendar.getTime(); final Date checkDateWithTimeZone = exampleSProcServiceDateConversionOtherTimeZoneImpl.checkDateWithTimeZone( date); Assert.assertEquals(date, checkDateWithTimeZone); } @Test public void testCheckDateWithoutTimeZoneTransformationOtherPostgresZone() { final Date date = new Date(); final Date checkDateWithTimeZone = exampleSProcServiceDateConversionOtherTimeZoneImpl.checkDateWithoutTimeZoneTransformed(date); Assert.assertTrue(!date.equals(checkDateWithTimeZone)); } @Test public void checkDateComplexDate() { final ComplexDate complexDate = new ComplexDate(); final Date date = new Date(); complexDate.dateWithoutTimeZone = (Date) date.clone(); complexDate.dateWithoutTimeZoneTransformed = (Date) date.clone(); complexDate.dateWithTimeZone = (Date) date.clone(); complexDate.dateWithTimeZoneTransformed = (Date) date.clone(); final ComplexDate complexDateReturned = exampleSProcServiceDateConversion.checkDateComplexDate(complexDate); Assert.assertEquals(complexDate.dateWithoutTimeZone, complexDateReturned.dateWithoutTimeZone); Assert.assertEquals(complexDate.dateWithoutTimeZoneTransformed, complexDateReturned.dateWithoutTimeZoneTransformed); Assert.assertEquals(complexDate.dateWithTimeZone, complexDateReturned.dateWithTimeZone); Assert.assertEquals(complexDate.dateWithTimeZoneTransformed, complexDateReturned.dateWithTimeZoneTransformed); } }