/* * 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.impl; import java.io.File; import java.util.UUID; import org.apache.commons.io.FileUtils; import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.kie.server.api.KieServerConstants; import org.kie.server.api.model.KieServerConfig; import org.kie.server.services.impl.storage.KieServerState; import org.kie.server.services.impl.storage.KieServerStateRepository; import org.kie.server.services.impl.storage.file.KieServerStateFileRepository; public class KieServerStateTest { private static final File REPOSITORY_DIR = new File("target/repository-dir"); @Before public void setup() throws Exception { // make sure we start with an empty repository directory // (just in case the same directory would be used by different test as well) FileUtils.deleteDirectory(REPOSITORY_DIR); FileUtils.forceMkdir(REPOSITORY_DIR); } @After public void cleanup() { System.clearProperty(KieServerConstants.CFG_PERSISTANCE_DIALECT); System.clearProperty(KieServerConstants.CFG_PERSISTANCE_DS); System.clearProperty(KieServerConstants.CFG_PERSISTANCE_TM); } @Test public void testLoadKieServerState() { KieServerStateRepository repository = new KieServerStateFileRepository(REPOSITORY_DIR); String serverId = UUID.randomUUID().toString(); KieServerState state = repository.load(serverId); Assert.assertNotNull(state); KieServerConfig config = state.getConfiguration(); Assert.assertNotNull(config); Assert.assertNull(config.getConfigItemValue(KieServerConstants.CFG_PERSISTANCE_DIALECT)); Assert.assertNull(config.getConfigItemValue(KieServerConstants.CFG_PERSISTANCE_DS)); Assert.assertNull(config.getConfigItemValue(KieServerConstants.CFG_PERSISTANCE_TM)); System.setProperty(KieServerConstants.CFG_PERSISTANCE_DIALECT, "org.hibernate.dialect.PostgreSQLDialect"); System.setProperty(KieServerConstants.CFG_PERSISTANCE_DS, "jdbc/jbpm"); System.setProperty(KieServerConstants.CFG_PERSISTANCE_TM, "org.hibernate.service.jta.platform.internal.BitronixJtaPlatform"); repository.store(serverId, state); repository = new KieServerStateFileRepository(REPOSITORY_DIR); state = repository.load(serverId); Assert.assertNotNull(state); config = state.getConfiguration(); Assert.assertNotNull(config); Assert.assertEquals("org.hibernate.dialect.PostgreSQLDialect", config.getConfigItemValue(KieServerConstants.CFG_PERSISTANCE_DIALECT)); Assert.assertEquals("jdbc/jbpm", config.getConfigItemValue(KieServerConstants.CFG_PERSISTANCE_DS)); Assert.assertEquals("org.hibernate.service.jta.platform.internal.BitronixJtaPlatform", config.getConfigItemValue(KieServerConstants.CFG_PERSISTANCE_TM)); } @Test public void testLoadKieServerStateWithProperties() { KieServerStateFileRepository repository = new KieServerStateFileRepository(REPOSITORY_DIR); System.setProperty(KieServerConstants.CFG_PERSISTANCE_DIALECT, "org.hibernate.dialect.PostgreSQLDialect"); System.setProperty(KieServerConstants.CFG_PERSISTANCE_DS, "jdbc/jbpm"); System.setProperty(KieServerConstants.CFG_PERSISTANCE_TM, "org.hibernate.service.jta.platform.internal.BitronixJtaPlatform"); String serverId = UUID.randomUUID().toString(); KieServerState state = repository.load(serverId); Assert.assertNotNull(state); KieServerConfig config = state.getConfiguration(); Assert.assertNotNull(config); Assert.assertEquals("org.hibernate.dialect.PostgreSQLDialect", config.getConfigItemValue(KieServerConstants.CFG_PERSISTANCE_DIALECT)); Assert.assertEquals("jdbc/jbpm", config.getConfigItemValue(KieServerConstants.CFG_PERSISTANCE_DS)); Assert.assertEquals("org.hibernate.service.jta.platform.internal.BitronixJtaPlatform", config.getConfigItemValue(KieServerConstants.CFG_PERSISTANCE_TM)); } }