/* * 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.jbpm.process.audit.query; import static org.jbpm.persistence.util.PersistenceUtil.JBPM_PERSISTENCE_UNIT_NAME; import static org.jbpm.process.audit.query.AuditQueryDataUtil.createTestNodeInstanceLogData; import static org.jbpm.process.audit.query.AuditQueryDataUtil.createTestProcessInstanceLogData; import static org.jbpm.process.audit.query.AuditQueryDataUtil.createTestVariableInstanceLogData; import static org.jbpm.query.QueryBuilderCoverageTestUtil.afterClass; import static org.jbpm.query.QueryBuilderCoverageTestUtil.beforeClass; import static org.jbpm.query.QueryBuilderCoverageTestUtil.queryBuilderCoverageTest; import javax.persistence.EntityManagerFactory; import org.jbpm.persistence.correlation.JPACorrelationKeyFactory; import org.jbpm.process.audit.JPAAuditLogService; import org.jbpm.process.audit.NodeInstanceLog; import org.jbpm.process.audit.ProcessInstanceLog; import org.jbpm.process.audit.VariableInstanceLog; import org.jbpm.process.audit.strategy.StandaloneJtaStrategy; import org.jbpm.query.QueryBuilderCoverageTestUtil.ModuleSpecificInputFiller; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.kie.internal.process.CorrelationKey; import org.kie.internal.runtime.manager.audit.query.AuditLogQueryBuilder.OrderBy; import org.kie.internal.runtime.manager.audit.query.NodeInstanceLogQueryBuilder; import org.kie.internal.runtime.manager.audit.query.ProcessInstanceLogQueryBuilder; import org.kie.internal.runtime.manager.audit.query.VariableInstanceLogQueryBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class AuditQueryCoverageTest extends JPAAuditLogService { private static final Logger logger = LoggerFactory.getLogger(AuditQueryCoverageTest.class); private static EntityManagerFactory emf; private ProcessInstanceLog [] pilTestData; private VariableInstanceLog [] vilTestData; private NodeInstanceLog [] nilTestData; @BeforeClass public static void configure() { emf = beforeClass(JBPM_PERSISTENCE_UNIT_NAME); } @AfterClass public static void reset() { afterClass(); } @Before public void setUp() throws Exception { if( pilTestData == null ) { // this is not really necessary.. pilTestData = createTestProcessInstanceLogData(emf); vilTestData = createTestVariableInstanceLogData(emf); nilTestData = createTestNodeInstanceLogData(emf); } this.persistenceStrategy = new StandaloneJtaStrategy(emf); } private static ModuleSpecificInputFiller inputFiller = new ModuleSpecificInputFiller() { private final JPACorrelationKeyFactory correlationKeyFactory = new JPACorrelationKeyFactory(); private int orderByType = 0; @Override public Object fillInput( Class type ) { if( type.equals(CorrelationKey.class) ) { return correlationKeyFactory.newCorrelationKey("business-key"); } else if( type.equals(OrderBy.class) ) { return ( orderByType++ % 2 == 0 ? OrderBy.processId : OrderBy.processInstanceId ); } else if( type.isArray() ) { CorrelationKey [] corrKeyArr = { correlationKeyFactory.newCorrelationKey("key:one"), correlationKeyFactory.newCorrelationKey("key:two") }; return corrKeyArr; } return null; } }; @Test public void processInstanceLogQueryCoverageTest() { ProcessInstanceLogQueryBuilder queryBuilder = this.processInstanceLogQuery(); Class builderClass = ProcessInstanceLogQueryBuilder.class; queryBuilderCoverageTest(queryBuilder, builderClass, inputFiller); } @Test public void variableInstanceLogQueryBuilderCoverageTest() { VariableInstanceLogQueryBuilder queryBuilder = this.variableInstanceLogQuery(); Class builderClass = VariableInstanceLogQueryBuilder.class; queryBuilderCoverageTest(queryBuilder, builderClass, inputFiller); } @Test public void nodeInstanceLogQueryBuilderCoverageTest() { NodeInstanceLogQueryBuilder queryBuilder = this.nodeInstanceLogQuery(); Class builderClass = NodeInstanceLogQueryBuilder.class; queryBuilderCoverageTest(queryBuilder, builderClass, inputFiller); } }