package cz.habarta.typescript.generator.ext; import cz.habarta.typescript.generator.TypeProcessor; import cz.habarta.typescript.generator.DefaultTypeProcessor; import cz.habarta.typescript.generator.Settings; import cz.habarta.typescript.generator.compiler.ModelCompiler; import cz.habarta.typescript.generator.emitter.EmitterExtension; import cz.habarta.typescript.generator.emitter.TsModel; import cz.habarta.typescript.generator.parser.Jackson2Parser; import cz.habarta.typescript.generator.parser.Model; import cz.habarta.typescript.generator.util.Utils; import org.junit.Assert; import org.junit.Test; public class BeanPropertyPathExtensionTest { static class ClassA { public String field1; public ClassB field2; public ClassC field3; } static class ClassB { public int field1; } static class ClassC extends ClassB { public int field4; } @Test public void basicTest() throws Exception { final StringBuilder data = new StringBuilder(); final EmitterExtension.Writer writer = new EmitterExtension.Writer() { @Override public void writeIndentedLine(String line) { data.append(line + "\n"); } }; final Settings settings = new Settings(); settings.sortDeclarations = true; final TypeProcessor typeProcessor = new DefaultTypeProcessor(); final Model model = new Jackson2Parser(settings, typeProcessor).parseModel(ClassA.class); final TsModel tsModel = new ModelCompiler(settings, typeProcessor).javaToTypeScript(model); new BeanPropertyPathExtension().emitElements(writer, settings, false, tsModel); String dataStr = data.toString(); final String expected = Utils.readString(getClass().getResourceAsStream("/ext/expected.ts"), "\n"); Assert.assertEquals(expected.trim(), dataStr.trim()); } }