/*
* Copyright 2015-Present Entando Inc. (http://www.entando.com) All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.agiletec.plugins.jacms.apsadmin.portal.specialwidget.listviewer;
import java.util.List;
import java.util.Map;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionSupport;
/**
* @author E.Santoboni
*/
public class TestDateAttributeFilterAction extends TestAbstractAttributeFilterAction {
public void testFailureAddDateValueFilter_1() throws Throwable {
String result = this.executeSaveValueDateFilter(IContentListFilterAction.NO_DATE_FILTER, "");//Opzione nessuna Data inserita
assertEquals(Action.INPUT, result);
ActionSupport action = this.getAction();
Map<String, List<String>> fieldsErrors = action.getFieldErrors();
assertEquals(1, fieldsErrors.size());
List<String> dateValueErrors = fieldsErrors.get("dateValueType");
assertEquals(1, dateValueErrors.size());
}
public void testFailureAddDateValueFilter_2() throws Throwable {
String result = this.executeSaveValueDateFilter(IContentListFilterAction.INSERTED_DATE_FILTER, "");//Opzione Data inserita
assertEquals(Action.INPUT, result);
ActionSupport action = this.getAction();
Map<String, List<String>> fieldsErrors = action.getFieldErrors();
assertEquals(1, fieldsErrors.size());
List<String> dateValueErrors = fieldsErrors.get("dateValue");
assertEquals(1, dateValueErrors.size());
}
public void testFailureAddDateValueFilter_3() throws Throwable {
String result = this.executeSaveValueDateFilter(IContentListFilterAction.INSERTED_DATE_FILTER, "wrongFormat");//Opzione Data inserita
assertEquals(Action.INPUT, result);
ActionSupport action = this.getAction();
Map<String, List<String>> fieldsErrors = action.getFieldErrors();
assertEquals(1, fieldsErrors.size());
List<String> dateValueErrors = fieldsErrors.get("dateValue");
assertEquals(2, dateValueErrors.size());//Errore in conversione e messaggio campo obbligatorio
}
public void testSuccessAddDateValueFilter() throws Throwable {
String result = this.executeSaveValueDateFilter(IContentListFilterAction.CURRENT_DATE_FILTER, "");//Opzione Data corrente
assertEquals(Action.SUCCESS, result);
result = this.executeSaveValueDateFilter(IContentListFilterAction.INSERTED_DATE_FILTER, "25/09/1972");//Opzione Data inserita
assertEquals(Action.SUCCESS, result);
}
private String executeSaveValueDateFilter(int dateValueType, String value) throws Throwable {
Map<String, String> params = this.getBaseParams("NEW");
params.put("filterKey", "Date");
params.put("attributeFilter", "true");
params.put("filterTypeId", String.valueOf(IContentListFilterAction.DATE_ATTRIBUTE_FILTER_TYPE));//Tipo Data
params.put("filterOptionId", String.valueOf(IContentListFilterAction.VALUE_FILTER_OPTION));//Opzione "Value"
params.put("dateValueType", String.valueOf(dateValueType));
params.put("dateValue", value);
String result = this.executeAddFilter("admin", params, "saveDateFilter");
return result;
}
public void testFailureAddRangeDateFilter_1() throws Throwable {
String result = this.executeSaveRangeDateFilter(IContentListFilterAction.INSERTED_DATE_FILTER, "", //Data Start inserita
IContentListFilterAction.INSERTED_DATE_FILTER, "25/09/1972");// Data End Inserita
assertEquals(Action.INPUT, result);
ActionSupport action = this.getAction();
Map<String, List<String>> fieldsErrors = action.getFieldErrors();
assertEquals(1, fieldsErrors.size());
List<String> dateValueErrors = fieldsErrors.get("dateStart");
assertEquals(1, dateValueErrors.size());//required dateStart
}
public void testFailureAddRangeDateFilter_2() throws Throwable {
String result = this.executeSaveRangeDateFilter(IContentListFilterAction.INSERTED_DATE_FILTER, "25/09/1972", //Data Start inserita
IContentListFilterAction.INSERTED_DATE_FILTER, "21/04/1972");// Data End Inserita
assertEquals(Action.INPUT, result);
ActionSupport action = this.getAction();
Map<String, List<String>> fieldsErrors = action.getFieldErrors();
assertEquals(1, fieldsErrors.size());
List<String> dateValueErrors = fieldsErrors.get("dateEnd");
assertEquals(1, dateValueErrors.size());//dateStart.after(dateEnd)
}
public void testFailureAddRangeDateFilter_3() throws Throwable {
String result = this.executeSaveRangeDateFilter(IContentListFilterAction.INSERTED_DATE_FILTER, "25/09/1972", //Data Start inserita
IContentListFilterAction.INSERTED_DATE_FILTER, "wrongFormat");// Data End Inserita
assertEquals(Action.INPUT, result);
ActionSupport action = this.getAction();
Map<String, List<String>> fieldsErrors = action.getFieldErrors();
assertEquals(1, fieldsErrors.size());
List<String> dateValueErrors = fieldsErrors.get("dateEnd");
assertEquals(2, dateValueErrors.size());//dateEnd Wrong Format and dateEnd required
}
public void testSuccessAddRangeDateFilter() throws Throwable {
String result = this.executeSaveRangeDateFilter(IContentListFilterAction.NO_DATE_FILTER, "", //Nessuna dateStart inserita
IContentListFilterAction.INSERTED_DATE_FILTER, "25/09/2002");//Data End Inserita
assertEquals(Action.SUCCESS, result);
result = this.executeSaveRangeDateFilter(IContentListFilterAction.INSERTED_DATE_FILTER, "25/09/1972", //Data Start inserita
IContentListFilterAction.NO_DATE_FILTER, "");//Nessuna dateEnd inserita
assertEquals(Action.SUCCESS, result);
result = this.executeSaveRangeDateFilter(IContentListFilterAction.INSERTED_DATE_FILTER, "25/09/1972", //Data Start inserita
IContentListFilterAction.CURRENT_DATE_FILTER, "");//Data Corrente
assertEquals(Action.SUCCESS, result);
result = this.executeSaveRangeDateFilter(IContentListFilterAction.NO_DATE_FILTER, "", //Nessuna dateStart inserita
IContentListFilterAction.CURRENT_DATE_FILTER, "");//Data Corrente
assertEquals(Action.SUCCESS, result);
result = this.executeSaveRangeDateFilter(IContentListFilterAction.INSERTED_DATE_FILTER, "25/09/1972", //Data Start inserita
IContentListFilterAction.INSERTED_DATE_FILTER, "25/09/2002");//Data End Inserita
assertEquals(Action.SUCCESS, result);
}
private String executeSaveRangeDateFilter(int dateStartType, String dateStart, int dateEndType, String dateEnd) throws Throwable {
Map<String, String> params = this.getBaseParams("NEW");
params.put("filterKey", "Date");
params.put("attributeFilter", "true");
params.put("filterTypeId", String.valueOf(IContentListFilterAction.DATE_ATTRIBUTE_FILTER_TYPE));//Tipo Data
params.put("filterOptionId", String.valueOf(IContentListFilterAction.RANGE_FILTER_OPTION));//Opzione "Range"
params.put("dateStartType", String.valueOf(dateStartType));
params.put("dateEndType", String.valueOf(dateEndType));
params.put("dateStart", dateStart);
params.put("dateEnd", dateEnd);
String result = this.executeAddFilter("admin", params, "saveDateFilter");
return result;
}
}