package com.mysema.rdfbean.query; import static org.junit.Assert.assertEquals; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Locale; import org.junit.Test; import com.mysema.query.types.path.PathBuilder; import com.mysema.rdfbean.object.Configuration; import com.mysema.rdfbean.object.ConfigurationBuilder; import com.mysema.rdfbean.object.Session; import com.mysema.rdfbean.object.SessionUtil; public class ConfigurationBuilderTest extends SessionTestBase { public static class Category extends Identifiable { String name; List<Product> products = new ArrayList<Product>(); } public static class Identifiable { String id; } public static class Product extends Identifiable { String name; double price; String description; } public enum Profile { ADMIN, USER } public static class User extends Identifiable { String username; String password; String firstName; String lastName; Profile profile = Profile.USER; } @Test public void test() throws IOException { ConfigurationBuilder builder = new ConfigurationBuilder(); builder.addClass(Identifiable.class).addId("id").addProperties(); builder.addClass(Category.class).addProperties(); builder.addClass(Product.class).addProperties(); builder.addClass(Profile.class).addProperties(); builder.addClass(User.class).addProperties(); Configuration configuration = builder.build(); Session session = SessionUtil.openSession(repository, Collections.<Locale> emptySet(), configuration); Product product = new Product(); product.name = "XXX"; Category category = new Category(); category.name = "XXX"; category.products.add(product); session.save(product); session.save(category); session.save(new User()); session.clear(); // list PathBuilder<Category> _category = new PathBuilder<Category>(Category.class, "category"); PathBuilder<Identifiable> _identifiable = new PathBuilder<Identifiable>(Identifiable.class, "identifiable"); PathBuilder<Product> _product = new PathBuilder<Product>(Product.class, "product"); PathBuilder<User> _user = new PathBuilder<User>(User.class, "user"); assertEquals(1, session.from(_category).list(_category).size()); assertEquals(3, session.from(_identifiable).list(_identifiable).size()); assertEquals(1, session.from(_product).list(_product).size()); assertEquals(1, session.from(_user).list(_user).size()); assertEquals("XXX", session.from(_category).list(_category).get(0).name); assertEquals("XXX", session.from(_product).list(_product).get(0).name); session.close(); } }