package com.fasterxml.jackson.databind.objectid;
import com.fasterxml.jackson.annotation.*;
import com.fasterxml.jackson.databind.*;
public class TestObjectIdWithInjectables538 extends BaseMapTest
{
@JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class)
public static class A {
public B b;
public A(@JacksonInject("i1") String injected) {
}
}
@JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class)
public static class B {
public A a;
@JsonCreator
public B(@JacksonInject("i2") String injected) {
}
}
/*
/*****************************************************
/* Test methods
/*****************************************************
*/
private final ObjectMapper MAPPER = new ObjectMapper();
public void testWithInjectables538() throws Exception
{
A a = new A("a");
B b = new B("b");
a.b = b;
b.a = a;
String json = MAPPER.writeValueAsString(a);
InjectableValues.Std inject = new InjectableValues.Std();
inject.addValue("i1", "e1");
inject.addValue("i2", "e2");
A output = null;
try {
output = MAPPER.reader(inject).forType(A.class).readValue(json);
} catch (Exception e) {
throw new IllegalStateException("Failed to deserialize from JSON '"+json+"'", e);
}
assertNotNull(output);
assertNotNull(output.b);
assertSame(output, output.b.a);
}
}