/* * Copyright 2013 Guidewire Software, Inc. */ package gw.lang.build; import gw.fs.FileFactory; import gw.fs.IDirectory; import gw.test.util.ITCaseUtils; import gw.xml.simple.SimpleXmlNode; import org.fest.assertions.Assertions; import org.junit.BeforeClass; import org.junit.Test; import java.io.File; import java.util.Arrays; import java.util.List; /** */ public class GosuAssemblyITCase extends Assertions { private static DistAssemblyUtil _assembly; private static String _launcherVersion; private static String _launcherImplVersion; private static String _launcherAetherVersion; @BeforeClass public static void beforeTestClass() throws Exception { _assembly = DistAssemblyUtil.getInstance(); File apiPom = new File(ITCaseUtils.findPom(GosuAssemblyITCase.class).getParentFile().getParentFile(), "gosu-parent/pom.xml"); SimpleXmlNode pomNode = SimpleXmlNode.parse(apiPom); SimpleXmlNode properties = ITCaseUtils.getChild(pomNode, "properties"); _launcherVersion = ITCaseUtils.getChild(properties, "launcher.api.version").getText(); _launcherImplVersion = ITCaseUtils.getChild(properties, "launcher.impl.version").getText(); _launcherAetherVersion = ITCaseUtils.getChild(properties, "launcher.aether.version").getText(); } @Test public void rootDir() { IDirectory dir = FileFactory.instance().getIDirectory(_assembly.getDir()); assertThat(dirNames(dir)).containsOnly("bin", "ext", "lib"); assertThat(fileNames(dir)).containsOnly("LICENSE.txt", "NOTICE.txt", "README.txt"); } @Test public void binDir() { IDirectory dir = FileFactory.instance().getIDirectory(_assembly.getBinDir()); assertThat(fileNames(dir)).containsOnly("gosu", "gosu.cmd", "gosulaunch.properties"); assertThat(dirNames(dir)).isEmpty(); } @Test public void libDir() { IDirectory dir = FileFactory.instance().getIDirectory(_assembly.getLibDir()); assertThat(fileNames(dir)).isEqualTo(Arrays.asList( "gosu-core-" + _assembly.getGosuVersion() + ".jar", "gosu-core-api-" + _assembly.getGosuVersion() + ".jar", "gosu-interactive-" + _assembly.getGosuVersion() + ".jar", "gosu-launcher-aether-" + _launcherAetherVersion + ".jar", "gosu-launcher-api-" + _launcherVersion + ".jar", "gosu-launcher-impl-" + _launcherImplVersion + ".jar", "jline-0.9.94.jar" )); assertThat(dirNames(dir)).isEmpty(); } @Test public void extDir() { IDirectory dir = FileFactory.instance().getIDirectory(_assembly.getExtDir()); assertThat(fileNames(dir)).isEqualTo(Arrays.asList( "gosu-process-" + _assembly.getGosuVersion() + ".jar", "gosu-servlet-" + _assembly.getGosuVersion() + ".jar" )); } private List<String> fileNames(IDirectory dir) { return ITCaseUtils.toNamesSorted(dir.listFiles()); } private List<String> dirNames(IDirectory dir) { return ITCaseUtils.toNamesSorted(dir.listDirs()); } }