package com.mysema.rdfbean.object; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.io.IOException; import java.util.Collections; import java.util.Locale; import java.util.Set; import org.junit.Before; import org.junit.Test; import com.mysema.rdfbean.model.MiniRepository; public class ConfigurationIheritanceTest { public static class Identifiable { private String id; public String getId() { return id; } public void setId(String id) { this.id = id; } } public static class Category extends Identifiable { private String label; private Set<Category> children; public String getLabel() { return label; } public void setLabel(String label) { this.label = label; } public Set<Category> getChildren() { return children; } public void setChildren(Set<Category> children) { this.children = children; } } private Configuration configuration; @Before public void setUp() { ConfigurationBuilder builder = new ConfigurationBuilder(); builder.addClass(Identifiable.class).addId("id").addProperties(); builder.addClass(Category.class).addProperties(); configuration = builder.build(); } @Test public void Identifiable_Is_Polymorphic() { assertTrue(configuration.isPolymorphic(Identifiable.class)); } @Test public void Category_Isnt_Polymorphic() { assertFalse(configuration.isPolymorphic(Category.class)); } @Test public void MappedClass_Has_IdProperty() { for (MappedClass mappedClass : configuration.getMappedClasses()) { assertTrue(mappedClass.getIdProperty() != null); } } @Test public void Save() throws IOException { Session session = SessionUtil.openSession(new MiniRepository(), Collections.<Locale> emptySet(), configuration); Category category = new Category(); category.label = "X"; category.children = Collections.singleton(new Category()); session.save(category); session.flush(); session.close(); } }