package com.fasterxml.jackson.databind.mixins;
import java.lang.annotation.*;
import com.fasterxml.jackson.annotation.*;
import com.fasterxml.jackson.databind.*;
// for [databind#771]
public class MixinsWithBundlesTest extends BaseMapTest
{
@Target(value={ ElementType.CONSTRUCTOR, ElementType.FIELD, ElementType.METHOD })
@Retention(value=RetentionPolicy.RUNTIME)
@JacksonAnnotationsInside
@JsonProperty("bar")
public @interface ExposeStuff {
}
public abstract class FooMixin {
@ExposeStuff
public abstract String getStuff();
}
public static class Foo {
private String stuff;
Foo(String stuff) {
this.stuff = stuff;
}
public String getStuff() {
return stuff;
}
}
public void testMixinWithBundles() throws Exception
{
ObjectMapper mapper = new ObjectMapper().addMixIn(Foo.class, FooMixin.class);
String result = mapper.writeValueAsString(new Foo("result"));
assertEquals("{\"bar\":\"result\"}", result);
}
}