/* * Copyright (C) 2015 Jan Pokorsky * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package cz.cas.lib.proarc.common.workflow; import cz.cas.lib.proarc.common.CustomTemporaryFolder; import cz.cas.lib.proarc.common.workflow.model.Task; import cz.cas.lib.proarc.common.workflow.model.TaskParameterFilter; import cz.cas.lib.proarc.common.workflow.model.TaskParameterView; import cz.cas.lib.proarc.common.workflow.profile.DisplayType; import cz.cas.lib.proarc.common.workflow.profile.WorkflowProfiles; import java.io.File; import java.math.BigDecimal; import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Locale; import org.apache.commons.io.FileUtils; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import static org.junit.Assert.*; import org.junit.Rule; /** * * @author Jan Pokorsky */ public class FilterFindParameterQueryTest { @Rule public CustomTemporaryFolder temp = new CustomTemporaryFolder(true); private WorkflowProfiles wp; @Before public void setUp() throws Exception { File xmlWorkflow = temp.newFile("workflowTest.xml"); FileUtils.copyURLToFile(WorkflowManagerTest.class.getResource("WorkflowManagerAddProfile.xml"), xmlWorkflow); WorkflowProfiles.setInstance(new WorkflowProfiles(xmlWorkflow)); wp = WorkflowProfiles.getInstance(); } @Test public void testFilterNoDbParam() { List<TaskParameterView> params = Collections.emptyList(); TaskParameterFilter filter = new TaskParameterFilter(); filter.setTaskId(BigDecimal.TEN); filter.setLocale(Locale.ENGLISH); Task task = new Task(); task.setTypeRef("task.id1"); task.setId(filter.getTaskId()); List<TaskParameterView> result = new FilterFindParameterQuery(wp).filter(params, filter, task, wp.getProfiles()); assertEquals(2, result.size()); assertEquals("param.id1", result.get(0).getParamRef()); assertEquals(DisplayType.TEXT, result.get(0).getDisplayType()); assertEquals(task.getTypeRef(), result.get(0).getTaskProfileName()); assertEquals(filter.getTaskId(), result.get(0).getTaskId()); } @Test public void testFilter() { String taskProfileName = "task.id1"; TaskParameterView dbParam2 = new TaskParameterView(); dbParam2.setJobId(BigDecimal.ZERO); dbParam2.setParamRef("param.id2"); dbParam2.setTaskId(BigDecimal.TEN); dbParam2.setTaskProfileName(taskProfileName); dbParam2.addValueString("testVal"); List<TaskParameterView> params = Arrays.asList(dbParam2); TaskParameterFilter filter = new TaskParameterFilter(); filter.setTaskId(BigDecimal.TEN); filter.setLocale(Locale.ENGLISH); List<TaskParameterView> result = new FilterFindParameterQuery(wp) .filter(params, filter, null, wp.getProfiles()); assertEquals(2, result.size()); assertEquals("param.id1", result.get(0).getParamRef()); assertEquals(DisplayType.TEXT, result.get(0).getDisplayType()); assertEquals(taskProfileName, result.get(0).getTaskProfileName()); assertEquals(filter.getTaskId(), result.get(0).getTaskId()); assertEquals("param.id2", result.get(1).getParamRef()); assertEquals("testVal", result.get(1).getValue()); assertEquals(DisplayType.TEXT, result.get(1).getDisplayType()); assertEquals(taskProfileName, result.get(1).getTaskProfileName()); assertEquals(filter.getTaskId(), result.get(1).getTaskId()); } }