@Test
 public void testWithFieldWithInnerClass() {
   String expectedClass =
       "package com.optible.processor.model;\n\n"
           + "import org.junit.Test;\n\n"
           + "@org.junit.Test\n"
           + "public class ClassModelTest {\n\n"
           + "    public class InnerClass {\n    };\n"
           + "}\n";
   TopLevelModel model = new TopLevelModel("com.optible.processor.model", "ClassModelTest");
   model.addModifiers(Modifier.PUBLIC);
   model.addImports("org.junit.Test");
   model.addAnnotations(new AnnotationModel("org.junit.Test"));
   TopLevelModel inner = new TopLevelModel("package", "InnerClass");
   inner.addModifiers(Modifier.PUBLIC);
   model.addInnerClass(inner);
   String resultClass = model.toString();
   assertEquals(expectedClass, resultClass);
 }
 @Test
 public void testSimple() {
   String expectedClass =
       "package com.optible.processor.model;\n\n"
           + "import org.junit.Test;\n\n"
           + "public class ClassModelTest {\n"
           + "}\n";
   TopLevelModel model = new TopLevelModel("com.optible.processor.model", "ClassModelTest");
   model.addModifiers(Modifier.PUBLIC);
   model.addImports("org.junit.Test");
   String resultClass = model.toString();
   assertEquals(expectedClass, resultClass);
 }
 @Test
 public void testWithGenericsExtends() {
   String expectedClass =
       "package com.optible.processor.model;\n\n"
           + "import org.junit.Test;\n\n"
           + "public class ClassModelTest extends BaseTest<View.view, Presenter.presenter> {\n"
           + "}\n";
   TopLevelModel model = new TopLevelModel("com.optible.processor.model", "ClassModelTest");
   model.addExtends("BaseTest<View.view, Presenter.presenter>");
   model.addModifiers(Modifier.PUBLIC);
   model.addImports("org.junit.Test");
   String resultClass = model.toString();
   assertEquals(expectedClass, resultClass);
 }
 @Test
 public void testWithExtendsWithPath() {
   String expectedClass =
       "package com.optible.processor.model;\n\n"
           + "import test.BaseTest;\nimport org.junit.Test;\n\n"
           + "public class ClassModelTest extends BaseTest {\n"
           + "}\n";
   TopLevelModel model = new TopLevelModel("com.optible.processor.model", "ClassModelTest");
   model.addExtends(new TypeModel("test", "BaseTest"));
   model.addModifiers(Modifier.PUBLIC);
   model.addImports("org.junit.Test");
   String resultClass = model.toString();
   assertEquals(expectedClass, resultClass);
 }
 @Test
 public void testWithFields() {
   String expectedClass =
       "package com.optible.processor.model;\n\n"
           + "import org.junit.Test;\n\n"
           + "@org.junit.Test\n"
           + "public class ClassModelTest {\n\n"
           + "    public Long id;\n"
           + "}\n";
   TopLevelModel model = new TopLevelModel("com.optible.processor.model", "ClassModelTest");
   model.addModifiers(Modifier.PUBLIC);
   model.addImports("org.junit.Test");
   model.addAnnotations(new AnnotationModel("org.junit.Test"));
   FieldModel methodModel = new FieldModel("Long", "id");
   methodModel.addModifiers(Modifier.PUBLIC);
   model.addFields(methodModel);
   String resultClass = model.toString();
   assertEquals(expectedClass, resultClass);
 }