Re-enabled additional tests
This commit is contained in:
parent
7e4275c46e
commit
8174f8ab9d
|
@ -6,7 +6,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//$Id: Group.java 5686 2005-02-12 07:27:32Z steveebersole $
|
//$Id: Group.java 5686 2005-02-12 07:27:32Z steveebersole $
|
||||||
package org.hibernate.test.map;
|
package org.hibernate.orm.test.map;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
148
hibernate-core/src/test/java/org/hibernate/orm/test/map/MapIndexFormulaTest.java
Executable file
148
hibernate-core/src/test/java/org/hibernate/orm/test/map/MapIndexFormulaTest.java
Executable file
|
@ -0,0 +1,148 @@
|
||||||
|
/*
|
||||||
|
* Hibernate, Relational Persistence for Idiomatic Java
|
||||||
|
*
|
||||||
|
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
|
||||||
|
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
||||||
|
*/
|
||||||
|
package org.hibernate.orm.test.map;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.hibernate.testing.orm.junit.DomainModel;
|
||||||
|
import org.hibernate.testing.orm.junit.SessionFactory;
|
||||||
|
import org.hibernate.testing.orm.junit.SessionFactoryScope;
|
||||||
|
import org.junit.jupiter.api.AfterEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Gavin King
|
||||||
|
*/
|
||||||
|
@DomainModel(
|
||||||
|
xmlMappings = { "org/hibernate/orm/test/map/UserGroup.hbm.xml" }
|
||||||
|
)
|
||||||
|
@SessionFactory
|
||||||
|
public class MapIndexFormulaTest {
|
||||||
|
|
||||||
|
@AfterEach
|
||||||
|
public void tearDown(SessionFactoryScope scope) {
|
||||||
|
scope.inTransaction(
|
||||||
|
session -> {
|
||||||
|
session.createQuery( "delete from Group" ).executeUpdate();
|
||||||
|
session.createQuery( "delete from User" ).executeUpdate();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testIndexFunctionOnManyToManyMap(SessionFactoryScope scope) {
|
||||||
|
scope.inTransaction(
|
||||||
|
session -> {
|
||||||
|
session.createQuery( "from Group g join g.users u where g.name = 'something' and index(u) = 'nada'" )
|
||||||
|
.list();
|
||||||
|
session.createQuery(
|
||||||
|
"from Group g join g.users u where g.name = 'something' and minindex(u) = 'nada'" )
|
||||||
|
.list();
|
||||||
|
session.createQuery(
|
||||||
|
"from Group g join g.users u where g.name = 'something' and maxindex(u) = 'nada'" )
|
||||||
|
.list();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testIndexFormulaMap(SessionFactoryScope scope) {
|
||||||
|
User turin = new User( "turin", "tiger" );
|
||||||
|
scope.inTransaction(
|
||||||
|
session -> {
|
||||||
|
User gavin = new User( "gavin", "secret" );
|
||||||
|
Group g = new Group( "developers" );
|
||||||
|
g.getUsers().put( "gavin", gavin );
|
||||||
|
g.getUsers().put( "turin", turin );
|
||||||
|
session.persist( g );
|
||||||
|
gavin.getSession().put( "foo", new SessionAttribute( "foo", "foo bar baz" ) );
|
||||||
|
gavin.getSession().put( "bar", new SessionAttribute( "bar", "foo bar baz 2" ) );
|
||||||
|
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
scope.inTransaction(
|
||||||
|
session -> {
|
||||||
|
Group g = session.get( Group.class, "developers" );
|
||||||
|
assertEquals( 2, g.getUsers().size() );
|
||||||
|
g.getUsers().remove( "turin" );
|
||||||
|
Map smap = ( (User) g.getUsers().get( "gavin" ) ).getSession();
|
||||||
|
assertEquals( 2, smap.size() );
|
||||||
|
smap.remove( "bar" );
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
scope.inTransaction(
|
||||||
|
session -> {
|
||||||
|
Group g = session.get( Group.class, "developers" );
|
||||||
|
assertEquals( 1, g.getUsers().size() );
|
||||||
|
Map smap = ( (User) g.getUsers().get( "gavin" ) ).getSession();
|
||||||
|
assertEquals( 1, smap.size() );
|
||||||
|
User gavin = (User) g.getUsers().put( "gavin", turin );
|
||||||
|
session.delete( gavin );
|
||||||
|
assertEquals(
|
||||||
|
0l,
|
||||||
|
session.createQuery( "select count(*) from SessionAttribute" ).uniqueResult()
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
scope.inTransaction(
|
||||||
|
session -> {
|
||||||
|
Group g = session.get( Group.class, "developers" );
|
||||||
|
assertEquals( g.getUsers().size(), 1 );
|
||||||
|
User t = (User) g.getUsers().get( "turin" );
|
||||||
|
Map smap = t.getSession();
|
||||||
|
assertEquals( smap.size(), 0 );
|
||||||
|
assertEquals(
|
||||||
|
1l,
|
||||||
|
session.createQuery( "select count(*) from User" ).uniqueResult()
|
||||||
|
);
|
||||||
|
session.delete( g );
|
||||||
|
session.delete( t );
|
||||||
|
assertEquals(
|
||||||
|
0l,
|
||||||
|
session.createQuery( "select count(*) from User" ).uniqueResult()
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@SuppressWarnings({ "unchecked" })
|
||||||
|
public void testSQLQuery(SessionFactoryScope scope) {
|
||||||
|
scope.inTransaction(
|
||||||
|
session -> {
|
||||||
|
User gavin = new User( "gavin", "secret" );
|
||||||
|
User turin = new User( "turin", "tiger" );
|
||||||
|
gavin.getSession().put( "foo", new SessionAttribute( "foo", "foo bar baz" ) );
|
||||||
|
gavin.getSession().put( "bar", new SessionAttribute( "bar", "foo bar baz 2" ) );
|
||||||
|
|
||||||
|
session.persist( gavin );
|
||||||
|
session.persist( turin );
|
||||||
|
|
||||||
|
session.flush();
|
||||||
|
session.clear();
|
||||||
|
|
||||||
|
List results = session.getNamedQuery( "userSessionData" ).setParameter( "uname", "%in" ).list();
|
||||||
|
assertEquals( results.size(), 2 );
|
||||||
|
gavin = (User) results.get( 0 );
|
||||||
|
assertEquals( "gavin", gavin.getName() );
|
||||||
|
assertEquals( 2, gavin.getSession().size() );
|
||||||
|
session.createQuery( "delete SessionAttribute" ).executeUpdate();
|
||||||
|
session.createQuery( "delete User" ).executeUpdate();
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//$Id: SessionAttribute.java 5686 2005-02-12 07:27:32Z steveebersole $
|
//$Id: SessionAttribute.java 5686 2005-02-12 07:27:32Z steveebersole $
|
||||||
package org.hibernate.test.map;
|
package org.hibernate.orm.test.map;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
/**
|
/**
|
|
@ -6,7 +6,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
//$Id: User.java 5686 2005-02-12 07:27:32Z steveebersole $
|
//$Id: User.java 5686 2005-02-12 07:27:32Z steveebersole $
|
||||||
package org.hibernate.test.map;
|
package org.hibernate.orm.test.map;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<hibernate-mapping package="org.hibernate.test.map">
|
<hibernate-mapping package="org.hibernate.orm.test.map">
|
||||||
|
|
||||||
<class name="Group" table="groups_">
|
<class name="Group" table="groups_">
|
||||||
<id name="name"/>
|
<id name="name"/>
|
|
@ -1,119 +0,0 @@
|
||||||
/*
|
|
||||||
* Hibernate, Relational Persistence for Idiomatic Java
|
|
||||||
*
|
|
||||||
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
|
|
||||||
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
|
|
||||||
*/
|
|
||||||
package org.hibernate.test.map;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import org.junit.Test;
|
|
||||||
|
|
||||||
import org.hibernate.Session;
|
|
||||||
import org.hibernate.Transaction;
|
|
||||||
import org.hibernate.testing.junit4.BaseCoreFunctionalTestCase;
|
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Gavin King
|
|
||||||
*/
|
|
||||||
public class MapIndexFormulaTest extends BaseCoreFunctionalTestCase {
|
|
||||||
public String[] getMappings() {
|
|
||||||
return new String[] { "map/UserGroup.hbm.xml" };
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testIndexFunctionOnManyToManyMap() {
|
|
||||||
Session s = openSession();
|
|
||||||
s.beginTransaction();
|
|
||||||
s.createQuery( "from Group g join g.users u where g.name = 'something' and index(u) = 'nada'" )
|
|
||||||
.list();
|
|
||||||
s.createQuery( "from Group g join g.users u where g.name = 'something' and minindex(u) = 'nada'" )
|
|
||||||
.list();
|
|
||||||
s.createQuery( "from Group g join g.users u where g.name = 'something' and maxindex(u) = 'nada'" )
|
|
||||||
.list();
|
|
||||||
s.getTransaction().commit();
|
|
||||||
s.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testIndexFormulaMap() {
|
|
||||||
Session s = openSession();
|
|
||||||
Transaction t = s.beginTransaction();
|
|
||||||
User gavin = new User("gavin", "secret");
|
|
||||||
User turin = new User("turin", "tiger");
|
|
||||||
Group g = new Group("developers");
|
|
||||||
g.getUsers().put("gavin", gavin);
|
|
||||||
g.getUsers().put("turin", turin);
|
|
||||||
s.persist(g);
|
|
||||||
gavin.getSession().put( "foo", new SessionAttribute("foo", "foo bar baz") );
|
|
||||||
gavin.getSession().put( "bar", new SessionAttribute("bar", "foo bar baz 2") );
|
|
||||||
t.commit();
|
|
||||||
s.close();
|
|
||||||
|
|
||||||
s = openSession();
|
|
||||||
t = s.beginTransaction();
|
|
||||||
g = (Group) s.get(Group.class, "developers");
|
|
||||||
assertEquals( g.getUsers().size(), 2 );
|
|
||||||
g.getUsers().remove("turin");
|
|
||||||
Map smap = ( (User) g.getUsers().get("gavin") ).getSession();
|
|
||||||
assertEquals(smap.size(), 2);
|
|
||||||
smap.remove("bar");
|
|
||||||
t.commit();
|
|
||||||
s.close();
|
|
||||||
|
|
||||||
s = openSession();
|
|
||||||
t = s.beginTransaction();
|
|
||||||
g = (Group) s.get(Group.class, "developers");
|
|
||||||
assertEquals( g.getUsers().size(), 1 );
|
|
||||||
smap = ( (User) g.getUsers().get("gavin") ).getSession();
|
|
||||||
assertEquals(smap.size(), 1);
|
|
||||||
gavin = (User) g.getUsers().put("gavin", turin);
|
|
||||||
s.delete(gavin);
|
|
||||||
assertEquals( s.createQuery("select count(*) from SessionAttribute").uniqueResult(), new Long(0) );
|
|
||||||
t.commit();
|
|
||||||
s.close();
|
|
||||||
|
|
||||||
s = openSession();
|
|
||||||
t = s.beginTransaction();
|
|
||||||
g = (Group) s.get(Group.class, "developers");
|
|
||||||
assertEquals( g.getUsers().size(), 1 );
|
|
||||||
turin = (User) g.getUsers().get("turin");
|
|
||||||
smap = turin.getSession();
|
|
||||||
assertEquals(smap.size(), 0);
|
|
||||||
assertEquals( s.createQuery("select count(*) from User").uniqueResult(), Long.valueOf(1) );
|
|
||||||
s.delete(g);
|
|
||||||
s.delete(turin);
|
|
||||||
assertEquals( s.createQuery("select count(*) from User").uniqueResult(), Long.valueOf( 0 ) );
|
|
||||||
t.commit();
|
|
||||||
s.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
@SuppressWarnings( {"unchecked"})
|
|
||||||
public void testSQLQuery() {
|
|
||||||
Session s = openSession();
|
|
||||||
Transaction t = s.beginTransaction();
|
|
||||||
User gavin = new User("gavin", "secret");
|
|
||||||
User turin = new User("turin", "tiger");
|
|
||||||
gavin.getSession().put( "foo", new SessionAttribute("foo", "foo bar baz") );
|
|
||||||
gavin.getSession().put( "bar", new SessionAttribute("bar", "foo bar baz 2") );
|
|
||||||
s.persist(gavin);
|
|
||||||
s.persist(turin);
|
|
||||||
s.flush();
|
|
||||||
s.clear();
|
|
||||||
List results = s.getNamedQuery("userSessionData").setParameter("uname", "%in").list();
|
|
||||||
assertEquals( results.size(), 2 );
|
|
||||||
gavin = (User) ( (Object[]) results.get(0) )[0];
|
|
||||||
assertEquals( gavin.getName(), "gavin" );
|
|
||||||
assertEquals( gavin.getSession().size(), 2 );
|
|
||||||
s.createQuery("delete SessionAttribute").executeUpdate();
|
|
||||||
s.createQuery("delete User").executeUpdate();
|
|
||||||
t.commit();
|
|
||||||
s.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue