package joist.sourcegen; import joist.util.Join; import org.junit.Assert; import org.junit.Test; public class GInterfaceTest { @Test public void testEmptyEnum() { GClass gc = new GClass("foo.bar.Foo").setInterface(); Assert.assertEquals(Join.lines(// "package foo.bar;", "", "public interface Foo {", "", "}", ""), gc.toCode()); } @Test public void testOneMethodEnum() { GClass gc = new GClass("foo.bar.Foo").setInterface(); gc.getMethod("foo").arguments("Bar bar"); Assert.assertEquals(Join.lines(// "package foo.bar;", "", "public interface Foo {", "", " public void foo(Bar bar);", "", "}", ""), gc.toCode()); } @Test public void testBaseWithGenerics() { GClass gc = new GClass("foo.Foo").setInterface().baseClassName("foo.Bar<foo.zazZaz.SomeClass>"); Assert.assertEquals(Join.lines(// "package foo;", "", "import foo.zazZaz.SomeClass;", "", "public interface Foo extends Bar<SomeClass> {", "", "}", ""), gc.toCode()); } @Test public void testBaseWithInnerClassIsNotMistookForAPackage() { GClass gc = new GClass("foo.Foo").setInterface().baseClassName("Foo.Inner"); Assert.assertEquals(Join.lines(// "package foo;", "", "public interface Foo extends Foo.Inner {", "", "}", ""), gc.toCode()); } }