package com.rapidftr.utilities;
import static org.junit.Assert.assertEquals;
import static org.mockito.Matchers.anyLong;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.util.Date;
import java.util.TimeZone;
import org.junit.Test;
public class DateFormatterTests
{
@Test
public void ShouldFormatDateToGivenTimeZone()
{
String expectedDateFormatResult = "20110101 09:00am";
long dateToConvert = Date.UTC(2011,1,1,9,0,0);
IFormatDates mockFormat = mock(IFormatDates.class);
when(mockFormat.format(anyLong())).thenReturn(expectedDateFormatResult);
TimeZone pacificTimezone = TimeZone.getTimeZone("PST");
long expectedTime = dateToConvert + pacificTimezone.getRawOffset();
DateFormatter dateFormatter = new DateFormatter(pacificTimezone, mockFormat);
String formattedDate = dateFormatter.formatToDefaultTimeZone(dateToConvert);
verify(mockFormat).format(new Date(expectedTime));
assertEquals(formattedDate, expectedDateFormatResult);
}
@Test
public void ShouldFormatDateAsProvided()
{
String expectedDateFormatResult = "20110101 09:00am";
long dateToConvert = Date.UTC(2011,1,1,9,0,0);
IFormatDates mockFormat = mock(IFormatDates.class);
when(mockFormat.format(anyLong())).thenReturn(expectedDateFormatResult);
DateFormatter dateFormatter = new DateFormatter(TimeZone.getTimeZone("PST"), mockFormat);
String formattedDate = dateFormatter.format(dateToConvert);
verify(mockFormat).format(new Date(dateToConvert));
assertEquals(formattedDate, expectedDateFormatResult);
}
}