package fi.koku.taskmanager.model;
import static org.junit.Assert.*;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.List;
import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
import fi.arcusys.intalio.tms.TaskMetadata;
import fi.arcusys.koku.exceptions.IntalioAuthException;
import fi.arcusys.koku.intalio.Task;
import fi.arcusys.koku.intalio.TaskHandle;
import fi.arcusys.koku.intalio.TaskManagementService;
public class TaskHandleTest{
private String TEST_USERNAME = "Ville Virkamies";
private String TEST_PASSWORD = "test";
TaskHandle tester;
@BeforeClass
public static void runBeforeClass() {
System.out.println("*** Test TaskHandle class starts ***");
}
@AfterClass
public static void runAfterClass() {
System.out.println("*** Test TaskHandle class ends ***");
}
@Before
public void setUp() throws Exception {
String username = TEST_USERNAME;
String token = getTestToken();
tester = new TaskHandle(token, username);
}
@After
public void tearDown() throws Exception {
}
@Ignore
@Test
public void getTasksByParams() {
int taskType = 1;
String keyword = "";
String orderType = "creationDate_desc";
String first = "0";
String max = "5";
List<Task> tasklist = tester.getTasksByParams(taskType, keyword, orderType, first, max);
assertTrue("GetTasksByParams failed", tasklist.size() > 0);
}
@Ignore
@Test
public void getTasksFromServ() {
String taskType = "PATask";
String subQuery = "T._state = TaskState.READY AND T._description like '%%' ORDER BY T._creationDate DESC";
String first = "0";
String max = "5";
List<Task> tasklist = tester.getTasks(taskType, subQuery, first, max);
assertTrue("GetTasksFromServ failed", tasklist.size() > 0);
}
// @Ignore
// @Test
// public void createTask() {
// List<TaskMetadata> tasklist = new ArrayList<TaskMetadata>();
// TaskMetadata task = new TaskMetadata();
// List<Task> myTasklist = new ArrayList<Task>();
// task.setTaskType("ACTIVITY");
// task.setDescription("task test 1");
// task.setTaskState(null);
// GregorianCalendar cal = (GregorianCalendar) Calendar.getInstance();
// cal.set(2011, 4, 20, 10, 30, 20);
// XMLGregorianCalendar xmlGregorianCalendar;
// try {
// xmlGregorianCalendar = DatatypeFactory.newInstance().newXMLGregorianCalendar(cal);
// task.setCreationDate(xmlGregorianCalendar);
// } catch (DatatypeConfigurationException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
//
// task.setTaskId("task-id-1");
// String url = "http://trelx28b:8080/form.htm";
// task.setFormUrl(url);
// tasklist.add(task);
// task.setDescription("task test 1");
// tasklist.add(task);
// myTasklist = tester.createTask(tasklist);
// Task myTask = myTasklist.get(0);
// String expected = "task test 1";
// String actual = myTask.getDescription();
// assertEquals("createTask first description failed", expected, actual);
// expected = "20.5.2011 10:30:20";
// actual = myTask.getCreationDate();
// assertEquals("createTask first creation date failed", expected, actual);
// }
@Ignore
@Test
public void formatTaskDate() {
GregorianCalendar cal = (GregorianCalendar) Calendar.getInstance();
cal.set(2011, 4, 20, 10, 30, 20);
XMLGregorianCalendar xmlGregorianCalendar = null;
try {
xmlGregorianCalendar = DatatypeFactory.newInstance().newXMLGregorianCalendar(cal);
} catch (DatatypeConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String expected = "20.5.2011 10:30:20";
String actual = tester.formatTaskDate(xmlGregorianCalendar);
assertEquals("formatTaskDate failed", expected, actual);
}
@Ignore
@Test
public void createTaskLink() {
TaskMetadata task = new TaskMetadata();
task.setTaskType("ACTIVITY");
task.setDescription("task test 1");
task.setTaskState(null);
GregorianCalendar cal = (GregorianCalendar) Calendar.getInstance();
cal.set(2011, 4, 20, 10, 30, 20);
XMLGregorianCalendar xmlGregorianCalendar = null;
try {
xmlGregorianCalendar = DatatypeFactory.newInstance().newXMLGregorianCalendar(cal);
} catch (DatatypeConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
task.setCreationDate(xmlGregorianCalendar);
task.setTaskId("task-id-1");
String url = "http://trelx28b:8080/form.htm";
task.setFormUrl(url);
tester.setToken("testtoken");
String expected = "http://trelx28b:8080/form.htm?id=task-id-1&type=PATask&url=http%3A%2F%2Flocalhost%3A8080%2Fform.htm&token=testtoken&user=Ville+Virkamies&claimTaskOnOpen=false";
String actual = tester.createTaskLink(task);
assertEquals("createTask task link failed", expected, actual);
}
@Ignore("Not Ready to Run")
@Test
public void getTotalTasksNumber() {
int taskType = 1;
String keyword = "Marko";
int expected = 3;
int actual = tester.getTotalTasksNumber(taskType, keyword);
assertEquals("getTotalTasksNumber failed", expected, actual);
}
@Ignore
@Test
public void createTotalNumSubQuery() {
int taskType = 1;
String keyword = "";
String expected = "(T._state = TaskState.READY OR T._state = TaskState.CLAIMED) AND T._description like '%%'";
String actual = tester.createTotalNumSubQuery(taskType, keyword);
assertEquals("createTotalNumSubQuery for task failed", expected, actual);
taskType = 2;
keyword = "key";
expected = "T._state = TaskState.READY AND T._description like '%key%'";
actual = tester.createTotalNumSubQuery(taskType, keyword);
assertEquals("createTotalNumSubQuery for notification failed", expected, actual);
taskType = 3;
keyword = "key";
expected = "T._description like '%key%'";
actual = tester.createTotalNumSubQuery(taskType, keyword);
assertEquals("createTotalNumSubQuery for process failed", expected, actual);
taskType = 5;
keyword = "key";
expected = "";
actual = tester.createTotalNumSubQuery(taskType, keyword);
assertEquals("createTotalNumSubQuery for other invalid processes failed", expected, actual);
}
@Ignore
@Test
public void createTaskSubQuery() {
int taskType = 1;
String keyword = "";
String orderType = "description_desc";
String expected = "(T._state = TaskState.READY OR T._state = TaskState.CLAIMED) AND T._description like '%%' ORDER BY T._description DESC";
String actual = tester.createTaskSubQuery(taskType, keyword, orderType);
assertEquals("createTaskSubQuery for task failed", expected, actual);
taskType = 2;
keyword = "key";
expected = "T._state = TaskState.READY AND T._description like '%key%' ORDER BY T._description DESC";
actual = tester.createTaskSubQuery(taskType, keyword, orderType);
assertEquals("createTaskSubQuery for notification failed", expected, actual);
taskType = 3;
keyword = "key";
expected = "T._description like '%key%' ORDER BY T._description DESC";
actual = tester.createTaskSubQuery(taskType, keyword, orderType);
assertEquals("createTaskSubQuery for process failed", expected, actual);
taskType = 5;
keyword = "key";
expected = "";
actual = tester.createTaskSubQuery(taskType, keyword, orderType);
assertEquals("createTaskSubQuery for other invalid processes failed", expected, actual);
}
@Ignore
@Test
public void getOrderTypeStr() {
String orderType = "description_desc";
String expected = "T._description DESC";
String actual = tester.getOrderTypeStr(orderType);
assertEquals("getOrderTypeStr " + orderType + " failed", expected, actual);
orderType = "description_asc";
expected = "T._description ASC";
actual = tester.getOrderTypeStr(orderType);
assertEquals("getOrderTypeStr " + orderType + " failed", expected, actual);
orderType = "state_desc";
expected = "T._state DESC";
actual = tester.getOrderTypeStr(orderType);
assertEquals("getOrderTypeStr " + orderType + " failed", expected, actual);
orderType = "state_asc";
expected = "T._state ASC";
actual = tester.getOrderTypeStr(orderType);
assertEquals("getOrderTypeStr " + orderType + " failed", expected, actual);
orderType = "creationDate_desc";
expected = "T._creationDate DESC";
actual = tester.getOrderTypeStr(orderType);
assertEquals("getOrderTypeStr " + orderType + " failed", expected, actual);
orderType = "creationDate_asc";
expected = "T._creationDate ASC";
actual = tester.getOrderTypeStr(orderType);
assertEquals("getOrderTypeStr " + orderType + " failed", expected, actual);
orderType = "other";
expected = "T._creationDate DESC";
actual = tester.getOrderTypeStr(orderType);
assertEquals("getOrderTypeStr " + orderType + " failed", expected, actual);
}
@Ignore
@Test
public void getTokenByUser() throws IntalioAuthException {
String username = TEST_USERNAME;
String password = TEST_PASSWORD;
String participantToken = tester.getTokenByUser(username, password);
System.out.println(participantToken);
assertNotNull("getTokenByUser failed", participantToken);
username = "wrong";
password = "wrong";
participantToken = tester.getTokenByUser(username, password);
assertNull("getTokenByUser failed", participantToken);
}
@Ignore("Not Ready to Run")
@Test
public void getToken() {
fail("Not yet implemented");
}
@Ignore("Not Ready to Run")
@Test
public void setToken() {
fail("Not yet implemented");
}
@Ignore("Not Ready to Run")
@Test
public void getMessage() {
fail("Not yet implemented");
}
private String getTestToken() throws IntalioAuthException {
TaskManagementService tms = new TaskManagementService();
String username = TEST_USERNAME;
String password = TEST_PASSWORD;
String participantToken = tms.getParticipantToken(username, password);
return participantToken;
}
}