/*
*
* 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.aps.externalframework.ticket;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.agiletec.aps.system.SystemConstants;
import com.agiletec.plugins.jpwtt.aps.system.services.ticket.model.Ticket;
import com.agiletec.plugins.jpwtt.apsadmin.ApsAdminPluginBaseTestCase;
import com.opensymphony.xwork2.Action;
public class TestUserTicketAction extends ApsAdminPluginBaseTestCase {
public void testView() throws Throwable {
try {
assertEquals(0, this._ticketManager.searchTicketIds(null).size());
Ticket t1 = this._helper.createTicket(null, new Date(), null, "message1", "mainEditor", 0, 0, "pageManagerCustomers", null, Ticket.STATES_OPENED, null, false);
this._ticketManager.addTicket(t1);
String result = this.executeView("pageManagerCustomers", t1.getCode());
assertEquals("ticketNotFound", result);
result = this.executeView("mainEditor", t1.getCode());
assertEquals(Action.SUCCESS, result);
UserTicketAction action = (UserTicketAction) this.getAction();
Ticket ticket = action.getTicket();
this.compareTickets(t1, ticket);
assertEquals(0, action.getTicketOperations().size());
} catch (Throwable t) {
throw t;
} finally {
this._helper.deleteTickets();
}
}
public void testNew() throws Throwable {
String result = this.executeNew(SystemConstants.GUEST_USER_NAME);
assertEquals(Action.SUCCESS, result);
result = this.executeNew("mainEditor");
assertEquals(Action.SUCCESS, result);
}
public void testSaveUnsuccessful() throws Throwable {
String username = SystemConstants.GUEST_USER_NAME;
assertEquals(0, this._ticketManager.searchTicketIds(null).size());
Map<String, String> params = new HashMap<String, String>();
String result = this.executeSave(username, params);
assertEquals(Action.INPUT, result);
Map fieldErrors = this.getAction().getFieldErrors();
assertEquals(6, fieldErrors.size());
assertEquals(1, ((List) fieldErrors.get("nome")).size());
assertEquals(1, ((List) fieldErrors.get("cognome")).size());
assertEquals(1, ((List) fieldErrors.get("codFisc")).size());
assertEquals(1, ((List) fieldErrors.get("comune")).size());
assertEquals(1, ((List) fieldErrors.get("indirizzo")).size());
assertEquals(1, ((List) fieldErrors.get("trattamentoDati")).size());
assertEquals(0, this.getAction().getActionErrors().size());
params.put("nome", "nome");
params.put("cognome", "cognome");
params.put("codFisc", "codFisc");
params.put("comune", "comune");
params.put("indirizzo", "indirizzo");
params.put("trattamentoDati", "false");
params.put("email", "email");
params.put("interventionType", "10");
result = this.executeSave(username, params);
assertEquals(Action.INPUT, result);
fieldErrors = this.getAction().getFieldErrors();
assertEquals(4, fieldErrors.size());
assertEquals(1, ((List) fieldErrors.get("interventionType")).size());
assertEquals(1, ((List) fieldErrors.get("trattamentoDati")).size());
assertEquals(1, ((List) fieldErrors.get("email")).size());
assertEquals(1, ((List) fieldErrors.get("codFisc")).size());
Collection actionErrors = this.getAction().getActionErrors();
assertEquals(1, actionErrors.size());
assertEquals("errors.email.wrongConfirm", actionErrors.toArray()[0]);
}
public void testSaveSuccessful() throws Throwable {
String username = "mainEditor";
try {
assertEquals(0, this._ticketManager.searchTicketIds(null).size());
Map<String, String> params = new HashMap<String, String>();
params.put("nome", "nome");
params.put("cognome", "cognome");
params.put("codFisc", "codFisc890123456");
params.put("comune", "comune");
params.put("indirizzo", "indirizzo");
params.put("trattamentoDati", "true");
params.put("email", "email@email.it");
params.put("emailConfirm", "email@email.it");
params.put("interventionType", "1");
String result = this.executeSave(username, params);
assertEquals(Action.SUCCESS, result);
List<String> ticketIds = this._ticketManager.searchTicketIds(null);
assertEquals(1, ticketIds.size());
Ticket ticket = this._ticketManager.getTicket(ticketIds.get(0));
assertEquals("nome", ticket.getNome());
assertEquals("cognome", ticket.getCognome());
assertEquals("codFisc890123456", ticket.getCodFisc());
assertEquals("comune", ticket.getComune());
assertEquals("indirizzo", ticket.getIndirizzo());
assertEquals("email@email.it", ticket.getEmail());
assertEquals(1, ticket.getUserInterventionType());
assertNull(ticket.getMessage());
assertNull(ticket.getTelefono());
assertNull(ticket.getNumeroIndirizzo());
assertNull(ticket.getTipoIndirizzo());
assertNull(ticket.getLocalita());
assertEquals(Ticket.STATES_OPENED, ticket.getStatus());
assertEquals(username, ticket.getAuthor());
assertNotNull(ticket.getCreationDate());
assertNull(ticket.getClosingDate());
assertNull(ticket.getWttOperator());
assertFalse(ticket.isResolved());
assertEquals(0, ticket.getPriority());
} catch (Throwable t) {
throw t;
} finally {
this._helper.deleteTickets();
}
}
private String executeView(String username, String code) throws Throwable {
this.setUserOnSession(username);
this.initAction("/do/jpwtt/Ticket/User", "view");
this.addParameter("code", code);
String result = this.executeAction();
return result;
}
private String executeNew(String username) throws Throwable {
this.setUserOnSession(username);
this.initAction("/do/jpwtt/Ticket/User", "new");
String result = this.executeAction();
return result;
}
private String executeSave(String username, Map<String, String> params) throws Throwable {
this.setUserOnSession(username);
this.initAction("/do/jpwtt/Ticket/User", "save");
this.addParameters(params);
String result = this.executeAction();
return result;
}
protected void compareTickets(Ticket t1, Ticket t2) {
assertEquals(t1.getCode(), t2.getCode());
assertEquals(t1.getCreationDate(), t2.getCreationDate());
assertEquals(t1.getMessage(), t2.getMessage());
assertEquals(t1.getAuthor(), t2.getAuthor());
assertEquals(t1.getUserInterventionType(), t2.getUserInterventionType());
assertEquals(t1.getPriority(), t2.getPriority());
assertEquals(t1.getWttOperator(), t2.getWttOperator());
assertEquals(t1.getStatus(), t2.getStatus());
assertEquals(t1.getClosingDate(), t2.getClosingDate());
assertEquals(t1.isResolved(), t2.isResolved());
}
}