/*
* Copyright 2015 Red Hat, Inc. and/or its affiliates.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.kie.server.services.jbpm.ui.form;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.io.IOUtils;
import org.jbpm.kie.services.impl.FormManagerService;
import org.jbpm.kie.services.impl.FormManagerServiceImpl;
import org.junit.Test;
public class FormFilterTest {
@Test
public void testSubForm() throws Exception {
FormManagerService formManagerService = new FormManagerServiceImpl();
String createOrderFormContent = IOUtils.toString(this.getClass().getResourceAsStream("/test-forms/CreateOrder.form"));
String headerFormContent = IOUtils.toString(this.getClass().getResourceAsStream("/test-forms/PurchaseHeader.form"));
String orderLineFormContent = IOUtils.toString(this.getClass().getResourceAsStream("/test-forms/PurchaseLine.form"));
formManagerService.registerForm("test", "CreateOrder.form", createOrderFormContent);
formManagerService.registerForm("test", "PurchaseHeader.form", headerFormContent);
formManagerService.registerForm("test", "PurchaseLine.form", orderLineFormContent);
RemoteFormModellerFormProvider formProvider = new RemoteFormModellerFormProvider();
formProvider.configure(formManagerService);
// setup some test data
Map<String, Object> inputs = new HashMap<String, Object>();
PurchaseOrder purchaseOrder = new PurchaseOrder();
purchaseOrder.setDescription("test description");
purchaseOrder.setRequiresCFOApproval(true);
purchaseOrder.setTotal(100.0);
// header
PurchaseOrderHeader header = new PurchaseOrderHeader();
header.setCreationDate(new Date());
header.setCustomer("john");
header.setProject("test project");
purchaseOrder.setHeader(header);
// order lines
List<PurchaseOrderLine> orderLines = new ArrayList<PurchaseOrderLine>();
PurchaseOrderLine orderLine1 = new PurchaseOrderLine();
orderLine1.setDescription("first line");
orderLine1.setTotal(10.0);
orderLine1.setAmount(2.0);
orderLine1.setUnitPrice(25.0);
orderLines.add(orderLine1);
PurchaseOrderLine orderLine2 = new PurchaseOrderLine();
orderLine2.setDescription("second line");
orderLine2.setTotal(20.0);
orderLine2.setAmount(4.0);
orderLine2.setUnitPrice(25.0);
orderLines.add(orderLine2);
purchaseOrder.setLines(orderLines);
inputs.put("po_in", purchaseOrder);
// outputs
Map<String, Object> outputs = new HashMap<String, Object>();
PurchaseOrder purchaseOrderOut = new PurchaseOrder();
purchaseOrderOut.setDescription("output description");
purchaseOrderOut.setRequiresCFOApproval(true);
purchaseOrderOut.setTotal(100.0);
// header
PurchaseOrderHeader headerOut = new PurchaseOrderHeader();
headerOut.setCreationDate(new Date());
headerOut.setCustomer("john output");
headerOut.setProject("output project");
purchaseOrderOut.setHeader(headerOut);
// order lines
List<PurchaseOrderLine> orderLinesOut = new ArrayList<PurchaseOrderLine>();
PurchaseOrderLine orderLineOut = new PurchaseOrderLine();
orderLineOut.setDescription("output line");
orderLineOut.setTotal(10.0);
orderLineOut.setAmount(2.0);
orderLineOut.setUnitPrice(25.0);
orderLinesOut.add(orderLineOut);
purchaseOrderOut.setLines(orderLinesOut);
outputs.put("po_out", purchaseOrderOut);
String filtered = formProvider.filterXML(createOrderFormContent, "en", "test", inputs, outputs);
System.out.println(filtered);
}
}