package com.buschmais.xo.neo4j.test.demo; import static com.buschmais.xo.neo4j.test.demo.composite.Group.MemberByName; import static org.hamcrest.Matchers.equalTo; import static org.junit.Assert.assertThat; import java.net.URISyntaxException; import java.util.Collection; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import com.buschmais.xo.api.XOManager; import com.buschmais.xo.api.bootstrap.XOUnit; import com.buschmais.xo.neo4j.test.AbstractNeo4jXOManagerTest; import com.buschmais.xo.neo4j.test.demo.composite.Group; import com.buschmais.xo.neo4j.test.demo.composite.Person; @RunWith(Parameterized.class) public class QueryDemoTest extends AbstractNeo4jXOManagerTest { public QueryDemoTest(XOUnit xoUnit) { super(xoUnit); } @Parameterized.Parameters public static Collection<Object[]> getXOUnits() throws URISyntaxException { return xoUnits(Group.class, Person.class); } @Test public void test() { XOManager xoManager = getXoManager(); xoManager.currentTransaction().begin(); Group group = xoManager.create(Group.class); Person person1 = xoManager.create(Person.class); person1.setName("Peter"); group.getMembers().add(person1); Person person2 = xoManager.create(Person.class); person2.setName("Dirk"); group.getMembers().add(person2); xoManager.currentTransaction().commit(); xoManager.currentTransaction().begin(); MemberByName memberByName = xoManager.createQuery(MemberByName.class).withParameter("this", group).withParameter("name", "Peter").execute().getSingleResult(); Person peter = memberByName.getMember(); assertThat(peter, equalTo(person1)); xoManager.currentTransaction().commit(); xoManager.currentTransaction().begin(); memberByName = group.getMemberByName("Peter"); peter = memberByName.getMember(); assertThat(peter, equalTo(person1)); xoManager.currentTransaction().commit(); } }