package com.mysema.rdfbean.sesame.query; import static com.mysema.query.alias.Alias.$; import static org.junit.Assert.assertEquals; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import com.mysema.query.alias.Alias; import com.mysema.rdfbean.domains.CompanyDepartmentEmployeeDomain; import com.mysema.rdfbean.domains.CompanyDepartmentEmployeeDomain.Company; import com.mysema.rdfbean.domains.CompanyDepartmentEmployeeDomain.Department; import com.mysema.rdfbean.domains.CompanyDepartmentEmployeeDomain.Employee; import com.mysema.rdfbean.sesame.SessionTestBase; import com.mysema.rdfbean.testutil.SessionConfig; @SessionConfig({ Company.class, Department.class, Employee.class }) public class CollectionTest extends SessionTestBase implements CompanyDepartmentEmployeeDomain { private Employee emp1, emp2, emp3, emp4; @Before public void setUp() { Department dep1 = new Department(); session.saveAll(dep1, new Department()); emp1 = new Employee(); emp1.department = dep1; emp2 = new Employee(); emp3 = new Employee(); emp4 = new Employee(); session.saveAll(emp1, emp2, emp3, emp4); } @Test public void Contains() { Department dep = Alias.alias(Department.class); assertEquals(1l, session.from($(dep)).where($(dep.getEmployees()).contains(emp1)).count()); } @Test @Ignore public void Any() { // Department dep = Alias.alias(Department.class); // Employee emp = Alias.alias(Employee.class, // $(dep.getEmployees()).any()); // BeanQuery qry = // session.from($(dep)).where($(emp.getDepartment()).isNotNull()); // assertEquals(1l, qry.count()); // // TupleExpr tuples = // ((SesameBeanQuery)qry).getJoinBuilder().getTupleExpr(); // StatementPattern rightPattern = (StatementPattern) // ((Join)tuples).getArg(1); // assertEquals("department_employees", // rightPattern.getSubjectVar().getName()); // assertEquals(new UID(TEST.NS, "department").getId(), // rightPattern.getPredicateVar().getValue().stringValue()); // assertEquals("department_employees_department", // rightPattern.getObjectVar().getName()); } @Test public void In() { Employee emp = Alias.alias(Employee.class); assertEquals(3l, session.from($(emp)).where($(emp).in(emp1, emp2, emp3)).count()); } }