package crmdna.program;
import crmdna.common.api.APIException;
import crmdna.common.api.APIResponse.Status;
import crmdna.group.Group.GroupProp;
import crmdna.programtype.ProgramTypeProp;
import crmdna.venue.Venue.VenueProp;
import org.junit.Test;
import java.util.List;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
public class ProgramPropTest {
@Test
public void getSessionsTest() {
ProgramProp programProp = new ProgramProp();
programProp.programId = 123;
programProp.groupProp = new GroupProp();
programProp.groupProp.displayName = "Singapore";
programProp.programTypeProp = new ProgramTypeProp();
programProp.programTypeProp.displayName = "IshaKriya";
programProp.venueProp = new VenueProp();
programProp.venueProp.displayName = "Woodlands CC";
programProp.numBatches = 2;
List<SessionProp> sessionProps = programProp.getSessions(20140309);
assertEquals(2, sessionProps.size());
assertEquals(1, sessionProps.get(0).batchNo);
assertEquals("Singapore", sessionProps.get(0).center);
assertEquals(123, sessionProps.get(0).programId);
assertEquals(20140309, sessionProps.get(0).dateYYYYMMDD);
assertEquals("IshaKriya", sessionProps.get(0).programType);
assertEquals("9 Mar B1 IshaKriya @ Woodlands ~", sessionProps.get(0).title);
assertEquals(2, sessionProps.get(1).batchNo);
assertEquals("Singapore", sessionProps.get(1).center);
assertEquals(123, sessionProps.get(1).programId);
assertEquals(20140309, sessionProps.get(1).dateYYYYMMDD);
assertEquals("IshaKriya", sessionProps.get(1).programType);
assertEquals("9 Mar B2 IshaKriya @ Woodlands ~", sessionProps.get(1).title);
}
@Test
public void getNumSessionsTest() {
assertTrue(false);
}
@Test
public void ensureValidSessionDateTest() {
ProgramProp programProp = new ProgramProp();
programProp.startYYYYMMDD = 20140501;
programProp.endYYYYMMDD = 20140521;
programProp.ensureValidSessionDate(20140501); // no exception
programProp.ensureValidSessionDate(20140521); // no exception
programProp.ensureValidSessionDate(20140515); // no exception
try {
programProp.ensureValidSessionDate(20140523);
assertTrue(false);
} catch (APIException ex) {
assertEquals(Status.ERROR_RESOURCE_INCORRECT, ex.statusCode);
}
try {
programProp.ensureValidSessionDate(20141523); // invalid date
assertTrue(false);
} catch (APIException ex) {
assertEquals(Status.ERROR_RESOURCE_INCORRECT, ex.statusCode);
}
// check for a 1 day program
programProp.startYYYYMMDD = 20140501;
programProp.endYYYYMMDD = 20140501;
programProp.ensureValidSessionDate(20140501); // no exception
try {
programProp.ensureValidSessionDate(20140330); // 1 day before
assertTrue(false);
} catch (APIException ex) {
assertEquals(Status.ERROR_RESOURCE_INCORRECT, ex.statusCode);
}
try {
programProp.ensureValidSessionDate(20140502); // 1 day after
assertTrue(false);
} catch (APIException ex) {
assertEquals(Status.ERROR_RESOURCE_INCORRECT, ex.statusCode);
}
}
@Test
public void populateNameTest() {
assertTrue(false);
}
@Test
public void asMapTest() {
assertTrue(false);
}
@Test
public void getNameWOVenueTest() {
assertTrue(false);
}
}