package fr.adrienbrault.idea.symfony2plugin.tests.installer; import fr.adrienbrault.idea.symfony2plugin.installer.SymfonyInstallerUtil; import fr.adrienbrault.idea.symfony2plugin.installer.dict.SymfonyInstallerVersion; import org.junit.Assert; import org.junit.Test; import java.util.List; public class SymfonyInstallerUtilTest extends Assert { @Test public void testExtractSuccessMessage() { String s = SymfonyInstallerUtil.extractSuccessMessage(" 4.95 MB/4.95 MB ====================================================\n" + " 100%\n" + "\n" + " Preparing project...\n" + "\n" + " OK Symfony 2.7.1 was successfully installed. Now you can:\n" + "\n" + " * Change your current directory to D:\\test\\foo\n" + "\n" + " * Configure your application in app/config/parameters.yml file. " ); assertTrue(s.endsWith("yml file.")); assertTrue(s.startsWith("OK")); assertNull(SymfonyInstallerUtil.extractSuccessMessage("foo")); } @Test public void testFormatConsoleTextIndicatorOutput() { assertEquals("41.2% - 2.03 MB/4.95 MB", SymfonyInstallerUtil.formatConsoleTextIndicatorOutput("2.03 MB/4.95 MB ======>--- 41.2%")); assertEquals("41% - 2.03 MB/4.95 MB", SymfonyInstallerUtil.formatConsoleTextIndicatorOutput("2.03 MB/4.95 MB ======>--- 41%")); assertEquals("foo", SymfonyInstallerUtil.formatConsoleTextIndicatorOutput("foo")); } @Test public void testFormatGetVersions() { List<SymfonyInstallerVersion> versions = SymfonyInstallerUtil.getVersions("{\"lts\":\"2.7.1\",\"latest\":\"2.7.1\",\"dev\":\"2.8.0-dev\",\"2.3\":\"2.3.30\",\"2.6\":\"2.6.9\",\"2.7\":\"2.7.1\",\"2.8\":\"2.8.0-dev\",\"non_installable\":[\"2.0.0\",\"2.0.1\",\"2.0.2\",\"2.0.3\",\"2.0.4\",\"2.0.5\",\"2.0.6\",\"2.0.7\",\"2.0.8\",\"2.0.9\",\"2.0.10\",\"2.0.11\",\"2.0.12\",\"2.0.13\",\"2.0.14\",\"2.0.15\",\"2.0.16\",\"2.0.17\",\"2.0.18\",\"2.0.19\",\"2.0.20\",\"2.0.21\",\"2.0.22\",\"2.0.23\",\"2.0.24\",\"2.0.25\",\"2.1.0\",\"2.1.1\",\"2.1.2\",\"2.1.3\",\"2.1.4\",\"2.1.5\",\"2.1.6\",\"2.1.7\",\"2.1.8\",\"2.1.9\",\"2.1.10\",\"2.1.11\",\"2.1.12\",\"2.1.13\",\"2.2.0\",\"2.2.1\",\"2.2.2\",\"2.2.3\",\"2.2.4\",\"2.2.5\",\"2.2.6\",\"2.2.7\",\"2.2.8\",\"2.2.9\",\"2.2.10\",\"2.2.11\",\"2.3.0\",\"2.3.1\",\"2.3.2\",\"2.3.3\",\"2.3.4\",\"2.3.5\",\"2.3.6\",\"2.3.7\",\"2.3.8\",\"2.3.9\",\"2.3.10\",\"2.3.11\",\"2.3.12\",\"2.3.13\",\"2.3.14\",\"2.3.15\",\"2.3.16\",\"2.3.17\",\"2.3.18\",\"2.3.19\",\"2.3.20\",\"2.4.0\",\"2.4.1\",\"2.4.2\",\"2.4.3\",\"2.4.4\",\"2.4.5\",\"2.4.6\",\"2.4.7\",\"2.4.8\",\"2.4.9\",\"2.4.10\"],\"installable\":[\"2.3.21\",\"2.3.22\",\"2.3.23\",\"2.3.24\",\"2.3.25\",\"2.3.26\",\"2.3.27\",\"2.3.28\",\"2.3.29\",\"2.3.30\",\"2.6.0\",\"2.6.1\",\"2.6.2\",\"2.6.3\",\"2.6.4\",\"2.6.5\",\"2.6.6\",\"2.6.7\",\"2.6.8\",\"2.6.9\"]}"); assertEquals("latest", versions.get(0).getVersion()); assertEquals("2.7.1 (latest)", versions.get(0).getPresentableName()); assertEquals("2.6.9", versions.get(2).getVersion()); assertEquals("2.6 (2.6.9)", versions.get(2).getPresentableName()); assertEquals("2.3.30", versions.get(3).getVersion()); assertEquals("2.3 (2.3.30)", versions.get(3).getPresentableName()); assertEquals("2.6.9", versions.get(4).getVersion()); assertEquals("2.6.9", versions.get(4).getPresentableName()); } @Test public void formatExceptionMessage() { String msg = SymfonyInstallerUtil.formatExceptionMessage("dev [RuntimeException] \n The Symfony version should be 2.N or 2.N.M, where N = 0..9 and M = 0..99 new directory [version]"); assertTrue(msg.startsWith("The Symfony ")); assertEquals("foo", SymfonyInstallerUtil.formatExceptionMessage("foo")); } }