Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
- adds tests for @JsonIgnore and @JsonIgnoreType
  • Loading branch information
rmpestano committed Jan 2, 2017
1 parent 7ca9d7a commit 030ee6d
Show file tree
Hide file tree
Showing 5 changed files with 263 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ private static boolean isRelevant(final Field field, final XmlAccessType accessT
if (field.isSynthetic())
return false;

if(isAnnotationPresent(field,JsonIgnore.class) || isAnnotationPresent(field.getDeclaringClass(), JsonIgnoreType.class)){
if(isAnnotationPresent(field,JsonIgnore.class) || isAnnotationPresent(field.getType(), JsonIgnoreType.class)){
ignoredFieldNames.add(field.getName().toLowerCase());
return false;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
/*
* Copyright (C) 2015 Sebastian Daschner, sebastian-daschner.com
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.sebastian_daschner.jaxrs_analyzer.analysis.results.testclasses.typeanalyzer;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.sebastian_daschner.jaxrs_analyzer.analysis.results.TypeUtils;
import com.sebastian_daschner.jaxrs_analyzer.model.Types;
import com.sebastian_daschner.jaxrs_analyzer.model.rest.TypeIdentifier;
import com.sebastian_daschner.jaxrs_analyzer.model.rest.TypeRepresentation;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
* Test @JsonIgnore on primitive field
*/
public class TestClass22 {

private static String PRIVATE_FIELD;
public static String PUBLIC_FIELD;
private String privateField;
protected String protectedField;
@JsonIgnore
public String publicField;

public String getTest() {
return null;
}

public int getInt() {
return 0;
}

public static String getStaticString() {
return null;
}

public String string() {
return null;
}

public static Set<TypeRepresentation> expectedTypeRepresentations() {
final Map<String, TypeIdentifier> properties = new HashMap<>();


// properties.put("publicField", TypeUtils.STRING_IDENTIFIER); //ignored by @JsonIgnore
properties.put("test", TypeUtils.STRING_IDENTIFIER);
properties.put("int", TypeIdentifier.ofType(Types.PRIMITIVE_INT));

return Collections.singleton(TypeRepresentation.ofConcrete(expectedIdentifier(), properties));
}

public static TypeIdentifier expectedIdentifier() {
return TypeIdentifier.ofType("Lcom/sebastian_daschner/jaxrs_analyzer/analysis/results/testclasses/typeanalyzer/TestClass22;");
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
/*
* Copyright (C) 2015 Sebastian Daschner, sebastian-daschner.com
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.sebastian_daschner.jaxrs_analyzer.analysis.results.testclasses.typeanalyzer;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.sebastian_daschner.jaxrs_analyzer.model.Types;
import com.sebastian_daschner.jaxrs_analyzer.model.rest.TypeIdentifier;
import com.sebastian_daschner.jaxrs_analyzer.model.rest.TypeRepresentation;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
* Test @JsonIgnore on type field
*/
@XmlAccessorType(XmlAccessType.FIELD)
public class TestClass23 {

private boolean first;
private int second;
@JsonIgnore
private TestClass23 child;

public static Set<TypeRepresentation> expectedTypeRepresentations() {
final Map<String, TypeIdentifier> properties = new HashMap<>();

final TypeIdentifier identifier = expectedIdentifier();
properties.put("first", TypeIdentifier.ofType(Types.PRIMITIVE_BOOLEAN));
properties.put("second", TypeIdentifier.ofType(Types.PRIMITIVE_INT));
//properties.put("child", identifier); @JsonIgnore

return Collections.singleton(TypeRepresentation.ofConcrete(identifier, properties));
}

public static TypeIdentifier expectedIdentifier() {
return TypeIdentifier.ofType("Lcom/sebastian_daschner/jaxrs_analyzer/analysis/results/testclasses/typeanalyzer/TestClass23;");
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
/*
* Copyright (C) 2015 Sebastian Daschner, sebastian-daschner.com
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.sebastian_daschner.jaxrs_analyzer.analysis.results.testclasses.typeanalyzer;

import com.fasterxml.jackson.annotation.JsonIgnoreType;
import com.sebastian_daschner.jaxrs_analyzer.model.Types;
import com.sebastian_daschner.jaxrs_analyzer.model.rest.TypeIdentifier;
import com.sebastian_daschner.jaxrs_analyzer.model.rest.TypeRepresentation;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import java.util.*;

/**
* Test @JsonIgnoreType
*/
@XmlAccessorType(XmlAccessType.FIELD)
public class TestClass24 {

private int first;
private InnerTestClass child;

@JsonIgnoreType
private class InnerTestClass {
private int second;
private TestClass24 child;
}

public static Set<TypeRepresentation> expectedTypeRepresentations() {
final Map<String, TypeIdentifier> properties = new HashMap<>();

properties.put("first", TypeIdentifier.ofType(Types.PRIMITIVE_INT));

final TypeIdentifier testClass24Identifier = expectedIdentifier();
final TypeRepresentation testClass24 = TypeRepresentation.ofConcrete(testClass24Identifier, properties);


return new HashSet<>(Arrays.asList(testClass24));
}

public static TypeIdentifier expectedIdentifier() {
return TypeIdentifier.ofType("Lcom/sebastian_daschner/jaxrs_analyzer/analysis/results/testclasses/typeanalyzer/TestClass24;");
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
/*
* Copyright (C) 2015 Sebastian Daschner, sebastian-daschner.com
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.sebastian_daschner.jaxrs_analyzer.analysis.results.testclasses.typeanalyzer;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.sebastian_daschner.jaxrs_analyzer.analysis.results.TypeUtils;
import com.sebastian_daschner.jaxrs_analyzer.model.Types;
import com.sebastian_daschner.jaxrs_analyzer.model.rest.TypeIdentifier;
import com.sebastian_daschner.jaxrs_analyzer.model.rest.TypeRepresentation;

import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
* Test @JsonIgnore at method level
*/
public class TestClass25 {

private static String PRIVATE_FIELD;
public static String PUBLIC_FIELD;
private String privateField;
protected String protectedField;

public String publicField;

@JsonIgnore
public String getTest() {
return null;
}

public int getInt() {
return 0;
}

public static String getStaticString() {
return null;
}

public String string() {
return null;
}

public static Set<TypeRepresentation> expectedTypeRepresentations() {
final Map<String, TypeIdentifier> properties = new HashMap<>();


properties.put("publicField", TypeUtils.STRING_IDENTIFIER); //ignored by @JsonIgnore
properties.put("int", TypeIdentifier.ofType(Types.PRIMITIVE_INT));

return Collections.singleton(TypeRepresentation.ofConcrete(expectedIdentifier(), properties));
}

public static TypeIdentifier expectedIdentifier() {
return TypeIdentifier.ofType("Lcom/sebastian_daschner/jaxrs_analyzer/analysis/results/testclasses/typeanalyzer/TestClass25;");
}

}

0 comments on commit 030ee6d

Please sign in to comment.