package jp.co.worksap.workspace.database.db2; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.junit.Assume.assumeThat; import java.io.File; import java.io.IOException; import java.util.List; import jp.co.worksap.workspace.common.NeverCalledProvider; import jp.co.worksap.workspace.common.OperatingSystem; import org.junit.Before; import org.junit.Test; import com.google.common.collect.ImmutableList; public class DB2InstallerTest { private static final String PASSWORD = "password"; private static final String USER_NAME = "username"; private static final String NODE_NAME = "nodename"; private File installer; @Before public void ensureWindows64bit() { assumeThat(OperatingSystem.create(), is(equalTo(OperatingSystem.WIN64))); } @Before public void ensureWeHaveInstaller() { installer = new File("src/test/resources", "DB2_97_limited_CD_Win_x86-64.exe"); assumeThat("put DB2_97_limited_CD_Win_x86-64.exe to src/test/resources", installer.exists(), is(true)); } @Test public void installDB2() throws IOException { Node node = new Node(NODE_NAME, "unit-test", "50000", USER_NAME, "node_for_test", "linuxx8664"); // TODO "linuxx8664" should be another literal for Windows 64bit List<Node> nodes = ImmutableList.of(node); Database database1 = new Database("test1", "alias1", NODE_NAME); Database database2 = new Database("test2", "alias2", NODE_NAME); Database database3 = new Database("test3", "alias3", NODE_NAME); List<Database> databases = ImmutableList.of(database1, database2); DB2Configuration db2Configuration = new DB2Configuration(USER_NAME, PASSWORD, installer.toURI().toString(), nodes, databases); DB2Installer db2Installer = new DB2Installer(); db2Installer.install(db2Configuration, new NeverCalledProvider()); // TODO assert that db2cmd.exe is in PATH assertTrue(db2Installer.nodeExists(node)); assertTrue(db2Installer.databaseExists(database1)); assertTrue(db2Installer.databaseExists(database2)); assertFalse(db2Installer.databaseExists(database3)); } }