add unit test
This commit is contained in:
parent
61cebdc290
commit
a9aa0dface
|
@ -0,0 +1,56 @@
|
|||
package org.cutem.cutecalendar.model;
|
||||
|
||||
import org.cutem.cutecalendar.testutil.TodoItemGenerator;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
public class TodoItemUtilTest {
|
||||
|
||||
|
||||
@Test
|
||||
public void testIntersectedAndIn() {
|
||||
|
||||
TodoItemGenerator gen = new TodoItemGenerator();
|
||||
|
||||
List<TodoItem> items = gen.generate(5);
|
||||
Calendar c1 = Calendar.getInstance();
|
||||
c1.add(Calendar.DAY_OF_MONTH, -1);
|
||||
Calendar c2 = Calendar.getInstance();
|
||||
c2.add(Calendar.DAY_OF_MONTH, 1);
|
||||
|
||||
for (TodoItem i1 : items) {
|
||||
boolean t1 = TodoItemUtil.isIntersectedDuring(i1, c1, c2);
|
||||
assertTrue(t1);
|
||||
boolean t2 = TodoItemUtil.isIn(i1, c1, c2);
|
||||
assertTrue(t2);
|
||||
}
|
||||
|
||||
for (TodoItem i1 : items) {
|
||||
for (TodoItem i2 : items) {
|
||||
boolean t1 = TodoItemUtil.isIntersected(i1, i2);
|
||||
assertTrue(t1);
|
||||
boolean t2 = TodoItemUtil.isIn(i1, i2);
|
||||
assertTrue(t2);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
for (TodoItem i1 : items) {
|
||||
for (TodoItem i2 : items) {
|
||||
boolean t1 = TodoItemUtil.isIntersectedConflict(i1, i2);
|
||||
assertFalse(t1);
|
||||
|
||||
boolean t2 = TodoItemUtil.canBind(i1, i2);
|
||||
assertTrue(t2);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
package org.cutem.cutecalendar.testutil;
|
||||
|
||||
public class Args {
|
||||
private Object[] mArgs;
|
||||
|
||||
private Args() {
|
||||
// empty
|
||||
}
|
||||
|
||||
public Object[] unwrap() {
|
||||
return mArgs;
|
||||
}
|
||||
|
||||
public static Args wrap(Object... args) {
|
||||
Args res = new Args();
|
||||
res.mArgs = args.clone();
|
||||
return res;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,40 @@
|
|||
package org.cutem.cutecalendar.testutil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
public class ArgsGroup {
|
||||
private List<Args> mGroup = new ArrayList<>();
|
||||
|
||||
private ArgsGroup() {
|
||||
// empty
|
||||
}
|
||||
|
||||
public ArgsGroup(Args... group) {
|
||||
mGroup.addAll(Arrays.asList(group));
|
||||
}
|
||||
|
||||
public ArgsGroup(Collection<Args> group) {
|
||||
mGroup.addAll(group);
|
||||
}
|
||||
|
||||
|
||||
public List<Args> get() {
|
||||
return mGroup;
|
||||
}
|
||||
|
||||
public static ArgsGroup group(Args... argss) {
|
||||
return new ArgsGroup(argss);
|
||||
}
|
||||
|
||||
public static ArgsGroup join(ArgsGroup... groups) {
|
||||
ArgsGroup sumGroup = new ArgsGroup();
|
||||
for (ArgsGroup group : groups) {
|
||||
sumGroup.mGroup.addAll(group.mGroup);
|
||||
}
|
||||
return sumGroup;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
package org.cutem.cutecalendar.testutil;
|
||||
|
||||
import org.cutem.cutecalendar.model.TodoItem;
|
||||
import org.cutem.cutecalendar.model.TodoItemFactory;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
|
||||
public class TodoItemGenerator {
|
||||
|
||||
public TodoItemGenerator() {
|
||||
// empty
|
||||
}
|
||||
|
||||
public List<TodoItem> generate(int count) {
|
||||
List<TodoItem> res = new ArrayList<>();
|
||||
|
||||
TodoItemFactory fac = new TodoItemFactory();
|
||||
fac.wholeDay(Calendar.getInstance());
|
||||
fac.type(TodoItem.OTHERS);
|
||||
|
||||
for (int i = 0; i < count; i++) {
|
||||
res.add(fac.buildId(i));
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,174 @@
|
|||
package org.cutem.cutecalendar.util;
|
||||
|
||||
import org.cutem.cutecalendar.testutil.Args;
|
||||
import org.cutem.cutecalendar.testutil.ArgsGroup;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Arrays;
|
||||
import java.util.Calendar;
|
||||
|
||||
import static org.cutem.cutecalendar.testutil.Args.wrap;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
public class CalendarUtilTest {
|
||||
private Class<CalendarUtil> mClass = CalendarUtil.class;
|
||||
|
||||
private static void checkSMethodReturn(Object expectedRet, Method m, Args args) throws Exception {
|
||||
System.out.println("method: '" + m + "' with args: " + Arrays.asList(args.unwrap()));
|
||||
m.invoke(null, args.unwrap());
|
||||
}
|
||||
|
||||
private static void checkSMethodReturn(Object expectedRet, Method m, ArgsGroup group) throws Exception {
|
||||
System.out.println();
|
||||
System.out.println("=== check group bgn ===");
|
||||
for (Args args : group.get()) {
|
||||
checkSMethodReturn(expectedRet, m, args);
|
||||
}
|
||||
System.out.println("=== check group end ===");
|
||||
System.out.println();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testChecker() throws Exception {
|
||||
Method m1 = mClass.getDeclaredMethod("isValidDateString", String.class);
|
||||
Method m2 = mClass.getDeclaredMethod("isValidTimeString", String.class);
|
||||
Method m3 = mClass.getDeclaredMethod("isValidCalendarString", String.class);
|
||||
|
||||
ArgsGroup validDateStr = ArgsGroup.group(
|
||||
wrap("2016-2-29"),
|
||||
wrap("2018-3-31")
|
||||
);
|
||||
|
||||
ArgsGroup validTimeStr = ArgsGroup.group(
|
||||
wrap("10:59"),
|
||||
wrap("00:00"),
|
||||
wrap("0:00")
|
||||
);
|
||||
|
||||
ArgsGroup validCalendarStr = ArgsGroup.group(
|
||||
wrap("2016-2-29/10:59")
|
||||
);
|
||||
|
||||
ArgsGroup invalidDateStr = ArgsGroup.group(
|
||||
wrap("2016-2-30"),
|
||||
wrap("2018-2-29"),
|
||||
wrap("2017-0-12")
|
||||
);
|
||||
|
||||
ArgsGroup invalidTimeStr = ArgsGroup.group(
|
||||
wrap("23:99"),
|
||||
wrap("0:60")
|
||||
);
|
||||
ArgsGroup invalidCalendarStr = ArgsGroup.group(
|
||||
wrap("2016-2-29/10:78"),
|
||||
wrap("2016-2-30/1:12"),
|
||||
wrap("2016-2-30/1:88")
|
||||
);
|
||||
|
||||
ArgsGroup invalid = ArgsGroup.group(
|
||||
wrap("alsdkjflksjdf"),
|
||||
wrap("1998*1-12"),
|
||||
wrap("asd-fasd-aa"),
|
||||
wrap("gg:22")
|
||||
);
|
||||
|
||||
checkSMethodReturn(true, m1, validDateStr);
|
||||
checkSMethodReturn(true, m2, validTimeStr);
|
||||
checkSMethodReturn(
|
||||
false, m1,
|
||||
ArgsGroup.join(validTimeStr, invalidDateStr, invalidTimeStr, invalid)
|
||||
);
|
||||
checkSMethodReturn(
|
||||
false, m2,
|
||||
ArgsGroup.join(validDateStr, invalidDateStr, invalidTimeStr, invalid)
|
||||
);
|
||||
|
||||
checkSMethodReturn(
|
||||
true, m3,
|
||||
validCalendarStr
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testSplit() throws Exception {
|
||||
Calendar c = Calendar.getInstance();
|
||||
c.set(2018, Calendar.MAY, 25, 11, 8);
|
||||
|
||||
int[] sp = CalendarUtil.splitCalendar(c);
|
||||
int[] exp = new int[]{2018, 5, 25, 11, 8};
|
||||
assertArrayEquals(exp, sp);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void construct() throws Exception {
|
||||
Calendar ans = Calendar.getInstance();
|
||||
ans.set(2018, Calendar.MAY, 25, 11, 8);
|
||||
|
||||
String str = "2018-5-25/11:8";
|
||||
|
||||
Calendar c = CalendarUtil.constructCalendar(str);
|
||||
|
||||
int[] exp = CalendarUtil.splitCalendar(ans);
|
||||
int[] cSp = CalendarUtil.splitCalendar(c);
|
||||
|
||||
assertArrayEquals(exp, cSp);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAddFields() throws Exception {
|
||||
Calendar c = Calendar.getInstance();
|
||||
c.set(2018, Calendar.MAY, 25, 11, 8);
|
||||
|
||||
int[] add = new int[]{1, 2, 3, 4, 5};
|
||||
c = CalendarUtil.addFields(c, add);
|
||||
|
||||
Calendar ans = Calendar.getInstance();
|
||||
ans.set(2019, Calendar.JULY, 28, 15, 13);
|
||||
|
||||
int[] exp = CalendarUtil.splitCalendar(ans);
|
||||
int[] cSp = CalendarUtil.splitCalendar(c);
|
||||
|
||||
assertArrayEquals(exp, cSp);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testToString() throws Exception {
|
||||
Calendar c = CalendarUtil.roundToMinute(Calendar.getInstance());
|
||||
c.set(2018, Calendar.MAY, 25, 11, 8);
|
||||
|
||||
String ansStr = "2018-5-25/11:8";
|
||||
Calendar ans = CalendarUtil.constructCalendar(ansStr);
|
||||
|
||||
String c1 = CalendarUtil.toString(c);
|
||||
String c2 = CalendarUtil.getDatePartString(c);
|
||||
String c3 = CalendarUtil.getTimePartString(c);
|
||||
|
||||
Calendar n1 = CalendarUtil.constructCalendar(c1);
|
||||
Calendar n2 = CalendarUtil.constructCalendar(c2, c3);
|
||||
|
||||
assertEquals(ans.getTimeInMillis(), n1.getTimeInMillis());
|
||||
assertEquals(ans.getTimeInMillis(), n2.getTimeInMillis());
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testOthers() throws Exception {
|
||||
Calendar c = Calendar.getInstance();
|
||||
Calendar[] whole = CalendarUtil.getWholeDayPeriod(c);
|
||||
Calendar monthBgn = CalendarUtil.getMonthBegin(c);
|
||||
Calendar monthEnd = CalendarUtil.getMonthEnd(c);
|
||||
|
||||
assertTrue(CalendarUtil.isSameDay(c, whole[0]));
|
||||
assertTrue(CalendarUtil.isSameDay(c, whole[1]));
|
||||
|
||||
assertTrue(CalendarUtil.isSameMonth(c, whole[0]));
|
||||
assertTrue(CalendarUtil.isSameMonth(c, whole[1]));
|
||||
|
||||
assertTrue(CalendarUtil.isSameMonth(c, monthBgn));
|
||||
assertTrue(CalendarUtil.isSameMonth(c, monthEnd));
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue