package org.constretto.internal;
import org.constretto.ConstrettoBuilder;
import org.constretto.ConstrettoConfiguration;
import org.constretto.annotation.Configuration;
import org.constretto.model.Resource;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
/**
* @author <a href="mailto:torarnek@pvv.org">Tor Arne Kvaløy</a>
*/
public class FieldAnnotationSubClassTest {
ConstrettoConfiguration config;
@Before
public void before() {
config = new ConstrettoBuilder()
.createPropertiesStore()
.addResource(Resource.create("classpath:subClassData.properties"))
.done()
.getConfiguration();
}
@Test
public void testSubClass() {
SubClazz subClazz = new SubClazz();
config.on(subClazz);
assertEquals("value", subClazz.value);
assertEquals("sub value", subClazz.subValue);
}
@Test
public void testSubSubClass() {
SubSubClazz subSubClazz = new SubSubClazz();
config.on(subSubClazz);
assertEquals("value", subSubClazz.value);
assertEquals("sub value", subSubClazz.subValue);
assertEquals("sub sub value", subSubClazz.subSubValue);
}
class Clazz {
@Configuration
public String value;
}
class SubClazz extends Clazz {
@Configuration
public String subValue;
}
class SubSubClazz extends SubClazz {
@Configuration
public String subSubValue;
}
}