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 $
|
||||
package org.hibernate.test.map;
|
||||
package org.hibernate.orm.test.map;
|
||||
import java.util.HashMap;
|
||||
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 $
|
||||
package org.hibernate.test.map;
|
||||
package org.hibernate.orm.test.map;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
|
@ -6,7 +6,7 @@
|
|||
*/
|
||||
|
||||
//$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.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_">
|
||||
<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