| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * 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.apache.ode.daohib.bpel; |
| |
| import java.util.ArrayList; |
| import java.util.HashMap; |
| import java.util.List; |
| import java.util.Map; |
| |
| import org.apache.ode.bpel.common.InstanceFilter; |
| |
| /** |
| * Testing BpelDAOConnectionImpl.listInstance. We're just producing a lot |
| * of different filter combinations and test if they execute ok. To really |
| * test that the result is the one expected would take a huge test database |
| * (with at least a process and an instance for every possible combination). |
| */ |
| public class ListInstanceTest extends BaseTestDAO { |
| |
| private Map<String, List> filterElmts; |
| private ArrayList<String> order; |
| |
| protected void setUp() throws Exception { |
| initTM(); |
| buildFilterElements(); |
| } |
| |
| protected void tearDown() throws Exception { |
| stopTM(); |
| } |
| |
| public void testListInstance() throws Exception { |
| for (int index = 0; index < 7; index++) { |
| StringBuffer filter = new StringBuffer(); |
| for (Map.Entry<String, List> entry : filterElmts.entrySet()) { |
| filter.append(entry.getKey()); |
| filter.append(entry.getValue().get((index < entry.getValue().size()) ? index : index % entry.getValue().size())); |
| InstanceFilter ifilter = new InstanceFilter(filter.toString(), |
| order.get((index < order.size()) ? index : index % order.size()), 0); |
| daoConn.instanceQuery(ifilter); |
| } |
| } |
| } |
| |
| private void buildFilterElements() { |
| filterElmts = new HashMap<String, List>(); |
| ArrayList<String> nameList = new ArrayList<String>(); |
| nameList.add("=Hello* "); |
| nameList.add("=HelloWorld "); |
| filterElmts.put("name", nameList); |
| |
| ArrayList<String> namespaceList = new ArrayList<String>(); |
| namespaceList.add("=http://ode* "); |
| namespaceList.add("=http://ode "); |
| filterElmts.put("namespace", namespaceList); |
| |
| ArrayList<String> statusList = new ArrayList<String>(); |
| statusList.add("=active "); |
| statusList.add("=suspended "); |
| statusList.add("=error "); |
| statusList.add("=completed|terminated "); |
| statusList.add("=faulted|terminated "); |
| statusList.add("=error|active "); |
| filterElmts.put("status", statusList); |
| |
| ArrayList<String> startedList = new ArrayList<String>(); |
| startedList.add(">=2005-11-29T15:11 "); |
| startedList.add("<=2005-11-29T15:11 "); |
| startedList.add("<2005-11-29T15:11 started>=2005-11-29T15:11 "); |
| startedList.add(">2005-11-29T15:11 started<=2005-11-29T15:11 "); |
| startedList.add("=2005-11-29T15:11 "); |
| filterElmts.put("started", startedList); |
| |
| ArrayList<String> lastActiveList = new ArrayList<String>(); |
| lastActiveList.add(">=2005-11-29T15:11 "); |
| lastActiveList.add("<=2005-11-29T15:11 "); |
| lastActiveList.add("<2005-11-29T15:11 last-active>=2005-11-29T15:11 "); |
| lastActiveList.add(">2005-11-29T15:11 last-active<=2005-11-29T15:11 "); |
| lastActiveList.add("=2005-11-29T15:11 "); |
| filterElmts.put("last-active", lastActiveList); |
| |
| order = new ArrayList<String>(); |
| order.add("pid"); |
| order.add("name pid"); |
| order.add("namespace -name"); |
| order.add("version -pid +name"); |
| order.add("status namespace"); |
| order.add("-started -version status"); |
| order.add("+last-active name -pid +version -status namespace"); |
| } |
| |
| } |