TestEnvManager.java revision ea1068c292e9b341af6d6b563cd8988a96be20a9
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin/*
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * CDDL HEADER START
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * The contents of this file are subject to the terms of the
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Common Development and Distribution License, Version 1.0 only
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * (the "License"). You may not use this file except in compliance
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * with the License.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * or http://forgerock.org/license/CDDLv1.0.html.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * See the License for the specific language governing permissions
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * and limitations under the License.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * When distributing Covered Code, include this CDDL HEADER in each
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * file and include the License file at legal-notices/CDDLv1_0.txt.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * If applicable, add the following below this CDDL HEADER, with the
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * fields enclosed by brackets "[]" replaced with your own identifying
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * information:
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Portions Copyright [yyyy] [name of copyright owner]
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * CDDL HEADER END
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Copyright 2006-2008 Sun Microsystems, Inc.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Portions Copyright 2015 ForgeRock AS
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin */
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinpackage org.opends.server.backends.jeb;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinimport static org.testng.AssertJUnit.assertTrue;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinimport java.io.File;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinimport org.testng.annotations.Test;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinimport org.testng.annotations.BeforeClass;
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chinimport org.testng.annotations.AfterClass;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinimport org.opends.server.TestCaseUtils;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinimport com.sleepycat.je.Environment;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinimport com.sleepycat.je.EnvironmentConfig;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin/**
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * EnvManager Tester.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin */
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chinpublic class TestEnvManager extends JebTestCase {
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin private File tempDir;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin private String homeDirName;
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin /**
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Set up the environment for performing the tests in this suite.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin *
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin * @throws Exception
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * If the environment could not be set up.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin */
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin @BeforeClass
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin public void setUp() throws Exception {
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin tempDir = TestCaseUtils.createTemporaryDirectory("jebtest");
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin homeDirName = tempDir.getAbsolutePath();
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin }
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin /**
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin * Tears down the environment for performing the tests in this suite.
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin *
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin * @throws Exception
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * If the environment could not be finalized.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin */
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin @AfterClass
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin public void tearDown() throws Exception {
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin TestCaseUtils.deleteDirectory(tempDir);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin }
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin /**
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Test for valid home directory.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * @throws Exception
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * If the test failed unexpectedly.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin */
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin @Test
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin public void testValidHomeDir() throws Exception {
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin File homeDir = new File(homeDirName);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin EnvManager.createHomeDir(homeDirName);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin EnvironmentConfig envConfig = new EnvironmentConfig();
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin envConfig.setTransactional(true);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin envConfig.setAllowCreate(true);
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin Environment env = new Environment(new File(homeDirName), envConfig);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin env.close();
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin assertTrue(homeDir.list().length > 0);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin EnvManager.removeFiles(homeDirName);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin assertTrue(homeDir.list().length == 0);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin }
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin /**
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * Test for invalid home directory.
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin *
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * @throws Exception
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin * If the test failed unexpectedly.
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin */
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin @Test(expectedExceptions = JebException.class)
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin public void testInvalidHomeDir() throws Exception {
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin File tempFile = File.createTempFile("jebtest", "");
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin tempFile.deleteOnExit();
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin String invalidHomeDirName = tempFile.getAbsolutePath();
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin EnvManager.createHomeDir(invalidHomeDirName);
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin }
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin
7c2fbfb345896881c631598ee3852ce9ce33fb07April Chin}
da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968chin