package org.test4j.tools.commons;
import static org.test4j.tools.commons.DateUtilTest.mockCalendar;
import java.util.Calendar;
import java.util.Date;
import mockit.Delegate;
import mockit.Mock;
import mockit.Mocked;
import org.test4j.testng.Test4J;
import org.test4j.tools.commons.DateUtilTest.MockDateUtil;
import org.testng.annotations.Test;
@Test(groups = "test4j")
@SuppressWarnings("unused")
public class DateUtilTest_jmockit extends Test4J {
@Test
public void testCurrDateStr_mockExpectations() {
new Expectations() {
@Mocked("now")
DateHelper dateUtil;
{
DateHelper.now();
result = mockCalendar().getTime();
}
};
String str = DateHelper.currDateStr();
want.string(str).isEqualTo("2010-02-12");
}
public void testCurrDateTimeStr_Delegate() {
new Expectations() {
@Mocked("now")
DateHelper dateUtil;
{
DateHelper.now();
result = new Delegate() {
public Date now() {
Calendar cal = mockCalendar(2011, 1, 27);
return cal.getTime();
}
};
}
};
String str = DateHelper.currDateStr();
want.string(str).isEqualTo("2011-01-27");
}
@Test
public void testCurrDateStr() {
new MockDateUtil();
String str = DateHelper.currDateStr();
want.string(str).isEqualTo("2010-02-12");
}
@Test
public void testCurrDateTimeStr() {
new MockDateUtil();
String str = DateHelper.currDateTimeStr();
want.string(str).isEqualTo("2010-02-12 19:58:55");
}
@Test
public void testCurrDateTimeStr_annotations() {
new MockUp<DateHelper>() {
@Mock
Date now() {
Calendar cal = mockCalendar(2011, 1, 27);
return cal.getTime();
}
};
String str = DateHelper.currDateTimeStr();
want.string(str).isEqualTo("2011-01-27 19:58:55");
}
@Test
public void testCurrDateTimeStr_format() {
new MockDateUtil();
String str = DateHelper.currDateTimeStr("MM/dd/yy hh:mm:ss");
want.string(str).isEqualTo("02/12/10 07:58:55");
}
public void testCurrDateTimeStr_Delegate2() {
new Expectations() {
@Mocked("now")
DateHelper dateUtil;
{
DateHelper.now();
result = new MyDateUtilNowDelegate();
}
};
String str = DateHelper.currDateStr();
want.string(str).isEqualTo("2311-01-27");
}
@SuppressWarnings("rawtypes")
public static class MyDateUtilNowDelegate implements Delegate {
public Date now() {
Calendar cal = mockCalendar(2311, 1, 27);
return cal.getTime();
}
}
}