package cz.habarta.typescript.generator; import io.github.lukehutch.fastclasspathscanner.FastClasspathScanner; import io.github.lukehutch.fastclasspathscanner.scanner.ScanResult; import java.util.*; import org.junit.Assert; import org.junit.Test; public class InputTest { @Test public void testScanner() { final ScanResult scanResult = new FastClasspathScanner().scan(); final List<String> allClassNames = scanResult.getNamesOfAllClasses(); final List<String> testClassNames = Input.filterClassNames(allClassNames, Arrays.asList("cz.habarta.typescript.generator.**Test")); Assert.assertTrue("Typescript-generator must have at least 20 tests :-)", testClassNames.size() > 20); } @Test public void testMatches() { final List<String> result1 = Input.filterClassNames( Arrays.asList( "com.example.Json", "com.example.AAAJson", "com.example.AAA", "com.example.aaa$Json" ), Arrays.asList("**Json") ); Assert.assertTrue(result1.contains("com.example.Json")); Assert.assertTrue(result1.contains("com.example.AAAJson")); Assert.assertTrue(!result1.contains("com.example.AAA")); Assert.assertTrue(result1.contains("com.example.aaa$Json")); final List<String> result2 = Input.filterClassNames( Arrays.asList( "com.example.Json", "cz.habarta.test.Json", "cz.habarta.test.BBBJson", "cz.habarta.test.aaa.BBBJson", "cz.habarta.test.CCC$Json" ), Arrays.asList("cz.habarta.test.*") ); Assert.assertTrue(!result2.contains("com.example.Json")); Assert.assertTrue(result2.contains("cz.habarta.test.Json")); Assert.assertTrue(result2.contains("cz.habarta.test.BBBJson")); Assert.assertTrue(!result2.contains("cz.habarta.test.aaa.BBBJson")); Assert.assertTrue(!result2.contains("cz.habarta.test.CCC$Json")); final List<String> result3 = Input.filterClassNames( Arrays.asList( "cz.habarta.test.BBBJson", "cz.habarta.ddd.CCC$Json", "cz.habarta.CCC$Json" ), Arrays.asList("cz.habarta.*.*$*") ); Assert.assertTrue(!result3.contains("cz.habarta.test.BBBJson")); Assert.assertTrue(result3.contains("cz.habarta.ddd.CCC$Json")); Assert.assertTrue(!result3.contains("cz.habarta.CCC$Json")); } @Test public void testGlobToRegexp() { Assert.assertEquals("\\Q\\E.*\\QJson\\E", Input.globToRegexp("**Json").toString()); Assert.assertEquals("\\Qcz.habarta.test.\\E[^.\\$]*\\Q\\E", Input.globToRegexp("cz.habarta.test.*").toString()); } }