/* * * Copyright 2013 Entando S.r.l. (http://www.entando.com) All rights reserved. * * This file is part of Entando Enterprise Edition software. * You can redistribute it and/or modify it * under the terms of the Entando's EULA * * See the file License for the specific language governing permissions * and limitations under the License * * * * Copyright 2013 Entando S.r.l. (http://www.entando.com) All rights reserved. * */ package com.agiletec.plugins.jpwtt.apsadmin.ticket; import java.util.Date; import java.util.List; import java.util.Map; import com.agiletec.aps.system.SystemConstants; import com.agiletec.apsadmin.system.BaseAction; import com.agiletec.plugins.jpwtt.aps.system.services.ticket.model.Ticket; import com.agiletec.plugins.jpwtt.apsadmin.ApsAdminPluginBaseTestCase; import com.agiletec.plugins.jpwtt.apsadmin.ticket.common.AbstractTicketFinderAction; import com.opensymphony.xwork2.Action; public class TestTicketFinderAction extends ApsAdminPluginBaseTestCase { public void testListUserNotAllowed() throws Throwable { String result = this.executeList(SystemConstants.GUEST_USER_NAME); assertEquals("apslogin", result); result = this.executeList("pageManagerCustomers"); assertEquals(BaseAction.USER_NOT_ALLOWED, result); } public void testList() throws Throwable { String username = "admin"; assertEquals(0, this._ticketManager.searchTicketIds(null).size()); Ticket t1 = this._helper.createTicket(null, new Date(), null, "message1", username, 0, 0, "pageManagerCustomers", null, Ticket.STATES_OPENED, null, false); this._ticketManager.addTicket(t1); Ticket t2 = this._helper.createTicket(null, new Date(), null, "message2", username, 1, 1, "mainEditor", null, Ticket.STATES_ASSIGNED, new Date(), false); this._ticketManager.addTicket(t2); Ticket t3 = this._helper.createTicket(null, new Date(), null, "message3", username, 2, 2, "editorCustomers", null, Ticket.STATES_CLOSED, null, false); this._ticketManager.addTicket(t3); Ticket t4 = this._helper.createTicket(null, new Date(), null, "message4", "pageManagerCustomers", 1, 0, "editorCustomers", null, Ticket.STATES_ASSIGNABLE, new Date(), true); this._ticketManager.addTicket(t4); String result = this.executeList(username); assertEquals(Action.SUCCESS, result); AbstractTicketFinderAction action = (AbstractTicketFinderAction) this.getAction(); List<String> ticketIds = action.getTicketIds(); assertEquals(4, ticketIds.size()); assertTrue(ticketIds.contains(t1.getCode())); assertTrue(ticketIds.contains(t2.getCode())); assertTrue(ticketIds.contains(t3.getCode())); assertTrue(ticketIds.contains(t4.getCode())); } public void testSearchAdmin() throws Throwable { String username = "supervisorCoach";// User with jpwwtAdmin permission assertEquals(0, this._ticketManager.searchTicketIds(null).size()); Ticket t1 = this._helper.createTicket(null, new Date(), "nome1", "cognome1", "codFisc1", "comune1", "localita1", "ind1", "indirizzo1", "num1", "telefono1", "email1@email.itte", "message1", username, 0, 1, 0, "pageManagerCustomers", "pageManager", Ticket.STATES_OPENED, null, false); this._ticketManager.addTicket(t1); Ticket t2 = this._helper.createTicket(null, new Date(), null, "message2", username, 1, 1, "mainEditor", null, Ticket.STATES_ASSIGNED, new Date(), false); this._ticketManager.addTicket(t2); Ticket t3 = this._helper.createTicket(null, new Date(), null, "message3", null, 2, 2, "editorCustomers", null, Ticket.STATES_DISPATCHED, null, true); this._ticketManager.addTicket(t3); Ticket t4 = this._helper.createTicket(null, new Date(), null, null, "pageManagerCustomers", 1, 0, "editorCustomers", null, Ticket.STATES_CLOSED, new Date(), false); this._ticketManager.addTicket(t4); Map<String, String> params = this.prepareParams("message2", "", "", "", "", "", "", ""); String result = this.executeSearch(username, params); // message = 'message2' assertEquals(Action.SUCCESS, result); List<String> ticketIds = ((AbstractTicketFinderAction) this.getAction()).getTicketIds(); this.verifyTicketIds(new String[] { t2.getCode() }, ticketIds); params.put("message", "ess"); result = this.executeSearch(username, params); // message = 'ess' assertEquals(Action.SUCCESS, result); ticketIds = ((AbstractTicketFinderAction) this.getAction()).getTicketIds(); this.verifyTicketIds(new String[] { t1.getCode(), t2.getCode(), t3.getCode() }, ticketIds); params.put("priority", "0"); params.remove("message"); result = this.executeSearch(username, params); // priority = '0' assertEquals(Action.SUCCESS, result); ticketIds = ((AbstractTicketFinderAction) this.getAction()).getTicketIds(); this.verifyTicketIds(new String[] { t1.getCode(), t4.getCode() }, ticketIds); params.put("userInterventionType", "0"); params.put("assignedInterventionType", "1"); result = this.executeSearch(username, params); // priority = '0', userInterventionType = '0', assignedInterventionType = '1' assertEquals(Action.SUCCESS, result); ticketIds = ((AbstractTicketFinderAction) this.getAction()).getTicketIds(); this.verifyTicketIds(new String[] { t1.getCode() }, ticketIds); params.put("userInterventionType", "1"); params.put("assignedInterventionType", ""); result = this.executeSearch(username, params); // priority = '0', userInterventionType = '1' assertEquals(Action.SUCCESS, result); ticketIds = ((AbstractTicketFinderAction) this.getAction()).getTicketIds(); this.verifyTicketIds(new String[] { t4.getCode() }, ticketIds); params.put("priority", ""); result = this.executeSearch(username, params); // userInterventionType = '1' assertEquals(Action.SUCCESS, result); ticketIds = ((AbstractTicketFinderAction) this.getAction()).getTicketIds(); this.verifyTicketIds(new String[] { t2.getCode(), t4.getCode() }, ticketIds); params.put("status", String.valueOf(Ticket.STATES_DISPATCHED)); result = this.executeSearch(username, params); // userInterventionType = '1', status = 'DISPATCHED' assertEquals(Action.SUCCESS, result); ticketIds = ((AbstractTicketFinderAction) this.getAction()).getTicketIds(); this.verifyTicketIds(new String[] { }, ticketIds); params.put("userInterventionType", ""); result = this.executeSearch(username, params); // status = 'DISPATCHED' assertEquals(Action.SUCCESS, result); ticketIds = ((AbstractTicketFinderAction) this.getAction()).getTicketIds(); this.verifyTicketIds(new String[] { t3.getCode() }, ticketIds); params.put("status", ""); params.put("userInterventionType", ""); params.put("resolved", "1"); result = this.executeSearch(username, params); // resolved = 'true' assertEquals(Action.SUCCESS, result); ticketIds = ((AbstractTicketFinderAction) this.getAction()).getTicketIds(); this.verifyTicketIds(new String[] { t3.getCode() }, ticketIds); params.put("resolved", "0"); result = this.executeSearch(username, params); // resolved = 'false' assertEquals(Action.SUCCESS, result); ticketIds = ((AbstractTicketFinderAction) this.getAction()).getTicketIds(); this.verifyTicketIds(new String[] { t1.getCode(), t2.getCode(), t4.getCode() }, ticketIds); params.put("resolved", ""); result = this.executeSearch(username, params); // resolved = '' assertEquals(Action.SUCCESS, result); ticketIds = ((AbstractTicketFinderAction) this.getAction()).getTicketIds(); this.verifyTicketIds(new String[] { t1.getCode(), t2.getCode(), t3.getCode(), t4.getCode() }, ticketIds); } public void testSearchOperator() throws Throwable { String username = "mainEditor"; assertEquals(0, this._ticketManager.searchTicketIds(null).size()); Ticket t1 = this._helper.createTicket(null, new Date(), null, "message1", username, 1, 1, "mainEditor", "supervisor", Ticket.STATES_ASSIGNABLE, new Date(), false); this._ticketManager.addTicket(t1); Ticket t2 = this._helper.createTicket(null, new Date(), null, "message2", username, 1, 1, "mainEditor", null, Ticket.STATES_ASSIGNED, new Date(), false); this._ticketManager.addTicket(t2); Ticket t3 = this._helper.createTicket(null, new Date(), null, "message3", null, 2, 2, "mainEditor", "editor", Ticket.STATES_WORKING, null, true); this._ticketManager.addTicket(t3); Ticket t4 = this._helper.createTicket(null, new Date(), null, "message4", "pageManagerCustomers", 1, 0, "editorCustomers", null, Ticket.STATES_ASSIGNED, new Date(), false); this._ticketManager.addTicket(t4); Ticket t5 = this._helper.createTicket(null, new Date(), null, "message5", "pageManagerCustomers", 1, 0, "editorCustomers", "editor", Ticket.STATES_ASSIGNABLE, new Date(), false); this._ticketManager.addTicket(t5); Map<String, String> params = this.prepareParams("ess", "", "admin", "", "", "", "", ""); String result = this.executeSearch(username, params); // message = 'ess' assertEquals(Action.SUCCESS, result); List<String> ticketIds = ((AbstractTicketFinderAction) this.getAction()).getTicketIds(); this.verifyTicketIds(new String[] { t2.getCode(), t5.getCode() }, ticketIds); params.put("status", String.valueOf(Ticket.STATES_ASSIGNABLE)); result = this.executeSearch(username, params); // message = 'ess' assertEquals(Action.SUCCESS, result); ticketIds = ((AbstractTicketFinderAction) this.getAction()).getTicketIds(); this.verifyTicketIds(new String[] { t5.getCode() }, ticketIds); params.put("status", String.valueOf(Ticket.STATES_ASSIGNED)); result = this.executeSearch(username, params); // message = 'ess' assertEquals(Action.SUCCESS, result); ticketIds = ((AbstractTicketFinderAction) this.getAction()).getTicketIds(); this.verifyTicketIds(new String[] { t2.getCode() }, ticketIds); } private String executeSearch(String username, Map<String, String> params) throws Throwable { this.setUserOnSession(username); this.initAction("/do/jpwtt/Ticket", "search"); this.addParameters(params); String result = this.executeAction(); return result; } private String executeList(String username) throws Throwable { this.setUserOnSession(username); this.initAction("/do/jpwtt/Ticket", "list"); String result = this.executeAction(); return result; } }