@Test public void fieldWithoutObject() { ASSERT.about(javaSource()) .that(JavaFileObjects.forResource("model/bad/FieldWithoutObjectModel.java")) .processedWith(new JsonAnnotationProcessor()) .failsToCompile() .withErrorContaining("@JsonField fields can only be in classes annotated with @JsonObject."); }
@Test public void privateField() { ASSERT.about(javaSource()) .that(JavaFileObjects.forResource("model/bad/PrivateFieldModelWithoutAccessors.java")) .processedWith(new JsonAnnotationProcessor()) .failsToCompile() .withErrorContaining("@JsonField annotation can only be used on private fields if both getter and setter are present."); }
@Test public void invalidTypeConverter() { ASSERT.about(javaSource()) .that(JavaFileObjects.forResource("model/bad/InvalidTypeConverterModel.java")) .processedWith(new JsonAnnotationProcessor()) .failsToCompile() .withErrorContaining("TypeConverter elements must implement the TypeConverter interface or extend from one of the convenience helpers"); }
@Test public void methodWithArgs() { ASSERT.about(javaSource()) .that(JavaFileObjects.forResource("model/bad/MethodWithArgsModel.java")) .processedWith(new JsonAnnotationProcessor()) .failsToCompile() .withErrorContaining("@OnJsonParseComplete methods must not take any parameters."); }
@Test public void multipleMethods() { ASSERT.about(javaSource()) .that(JavaFileObjects.forResource("model/bad/MultipleMethodsModel.java")) .processedWith(new JsonAnnotationProcessor()) .failsToCompile() .withErrorContaining("There can only be one @OnJsonParseComplete method per class"); } }
@Test public void methodObject() { ASSERT.about(javaSource()) .that(JavaFileObjects.forResource("model/bad/MethodWithoutObjectModel.java")) .processedWith(new JsonAnnotationProcessor()) .failsToCompile() .withErrorContaining("@OnJsonParseComplete methods can only be in classes annotated with @JsonObject."); }
@Test public void generatedSource() { ASSERT.about(javaSource()) .that(JavaFileObjects.forResource("model/good/NestedCollectionModel.java")) .processedWith(new JsonAnnotationProcessor()) .compilesWithoutError() .and() .generatesSources(JavaFileObjects.forResource("generated/NestedCollectionModel$$JsonObjectMapper.java")); } }
@Test public void generatedSource() { ASSERT.about(javaSource()) .that(JavaFileObjects.forResource("model/good/AbstractParentModel.java")) .processedWith(new JsonAnnotationProcessor()) .compilesWithoutError() .and() .generatesSources(JavaFileObjects.forResource("generated/AbstractParentModel$$JsonObjectMapper.java")); } }
@Test public void generatedSource() { ASSERT.about(javaSource()) .that(JavaFileObjects.forResource("model/good/NonPrivateFieldsFieldDetectionPolicyModel.java")) .processedWith(new JsonAnnotationProcessor()) .compilesWithoutError() .and() .generatesSources(JavaFileObjects.forResource("generated/NonPrivateFieldsFieldDetectionPolicyModel$$JsonObjectMapper.java")); } }
@Test public void generatedSource() { ASSERT.about(javaSource()) .that(JavaFileObjects.forResource("model/good/EnumModel.java")) .processedWith(new JsonAnnotationProcessor()) .compilesWithoutError() .and() .generatesSources(JavaFileObjects.forResource("generated/EnumModel$$JsonObjectMapper.java")); } }
@Test public void generatedSource() { ASSERT.about(javaSource()) .that(JavaFileObjects.forResource("model/good/SimpleGenericModelWithExtends.java")) .processedWith(new JsonAnnotationProcessor()) .compilesWithoutError() .and() .generatesSources(JavaFileObjects.forResource("generated/SimpleGenericModelWithExtends$$JsonObjectMapper.java")); } }
@Test public void generatedSource() { ASSERT.about(javaSource()) .that(JavaFileObjects.forResource("model/good/SimpleCollectionModel.java")) .processedWith(new JsonAnnotationProcessor()) .compilesWithoutError() .and() .generatesSources(JavaFileObjects.forResource("generated/SimpleCollectionModel$$JsonObjectMapper.java")); } }
@Test public void generatedSource() { ASSERT.about(javaSource()) .that(JavaFileObjects.forResource("model/good/PrivateFieldModel.java")) .processedWith(new JsonAnnotationProcessor()) .compilesWithoutError() .and() .generatesSources(JavaFileObjects.forResource("generated/PrivateFieldModel$$JsonObjectMapper.java")); } }
@Test public void generatedSource() { ASSERT.about(javaSource()) .that(JavaFileObjects.forResource("model/good/SimpleWrapperModel.java")) .processedWith(new JsonAnnotationProcessor()) .compilesWithoutError() .and() .generatesSources(JavaFileObjects.forResource("generated/SimpleWrapperModel$$JsonObjectMapper.java")); } }
@Test public void generatedSource() { ASSERT.about(javaSource()) .that(JavaFileObjects.forResource("model/good/SimpleGenericModel.java")) .processedWith(new JsonAnnotationProcessor()) .compilesWithoutError() .and() .generatesSources(JavaFileObjects.forResource("generated/SimpleGenericModel$$JsonObjectMapper.java")); } }
@Test public void generatedSource() { ASSERT.about(javaSource()) .that(JavaFileObjects.forResource("model/good/DateModel.java")) .processedWith(new JsonAnnotationProcessor()) .compilesWithoutError() .and() .generatesSources(JavaFileObjects.forResource("generated/DateModel$$JsonObjectMapper.java")); } }
@Test public void generatedSource() { ASSERT.about(javaSource()) .that(JavaFileObjects.forResource("model/good/LowerCaseNamingPolicyModel.java")) .processedWith(new JsonAnnotationProcessor()) .compilesWithoutError() .and() .generatesSources(JavaFileObjects.forResource("generated/LowerCaseNamingPolicyModel$$JsonObjectMapper.java")); } }
@Test public void generatedSource() { ASSERT.about(javaSource()) .that(JavaFileObjects.forResource("model/good/PrePostProcessingModel.java")) .processedWith(new JsonAnnotationProcessor()) .compilesWithoutError() .and() .generatesSources(JavaFileObjects.forResource("generated/PrePostProcessingModel$$JsonObjectMapper.java")); } }
@Test public void generatedSource() { ASSERT.about(javaSource()) .that(JavaFileObjects.forResource("model/good/ParentModel.java")) .processedWith(new JsonAnnotationProcessor()) .compilesWithoutError() .and() .generatesSources(JavaFileObjects.forResource("generated/ParentModel$$JsonObjectMapper.java")); } }
@Test public void generatedSource() { ASSERT.about(javaSource()) .that(JavaFileObjects.forResource("model/good/MultipleFieldNamesModel.java")) .processedWith(new JsonAnnotationProcessor()) .compilesWithoutError() .and() .generatesSources(JavaFileObjects.forResource("generated/MultipleFieldNamesModel$$JsonObjectMapper.java")); } }