@ -105,15 +105,20 @@ class SharedEntityManagerCreatorTests {
@@ -105,15 +105,20 @@ class SharedEntityManagerCreatorTests {
void deferredQueryWithUpdate ( ) {
EntityManagerFactory emf = mock ( ) ;
EntityManager targetEm = mock ( ) ;
Query q uery = mock ( ) ;
Query targetQ uery = mock ( ) ;
given ( emf . createEntityManager ( ) ) . willReturn ( targetEm ) ;
given ( targetEm . createQuery ( "x" ) ) . willReturn ( q uery) ;
given ( targetEm . createQuery ( "x" ) ) . willReturn ( targetQ uery) ;
given ( targetEm . isOpen ( ) ) . willReturn ( true ) ;
given ( ( Query ) targetQuery . unwrap ( targetQuery . getClass ( ) ) ) . willReturn ( targetQuery ) ;
EntityManager em = SharedEntityManagerCreator . createSharedEntityManager ( emf ) ;
em . createQuery ( "x" ) . executeUpdate ( ) ;
Query query = em . createQuery ( "x" ) ;
assertThat ( ( Query ) query . unwrap ( null ) ) . isSameAs ( targetQuery ) ;
assertThat ( ( Query ) query . unwrap ( targetQuery . getClass ( ) ) ) . isSameAs ( targetQuery ) ;
assertThat ( query . unwrap ( Query . class ) ) . isSameAs ( query ) ;
query . executeUpdate ( ) ;
verify ( query ) . executeUpdate ( ) ;
verify ( targetQ uery) . executeUpdate ( ) ;
verify ( targetEm ) . close ( ) ;
}
@ -121,15 +126,20 @@ class SharedEntityManagerCreatorTests {
@@ -121,15 +126,20 @@ class SharedEntityManagerCreatorTests {
void deferredQueryWithSingleResult ( ) {
EntityManagerFactory emf = mock ( ) ;
EntityManager targetEm = mock ( ) ;
Query q uery = mock ( ) ;
Query targetQ uery = mock ( ) ;
given ( emf . createEntityManager ( ) ) . willReturn ( targetEm ) ;
given ( targetEm . createQuery ( "x" ) ) . willReturn ( q uery) ;
given ( targetEm . createQuery ( "x" ) ) . willReturn ( targetQ uery) ;
given ( targetEm . isOpen ( ) ) . willReturn ( true ) ;
given ( ( Query ) targetQuery . unwrap ( targetQuery . getClass ( ) ) ) . willReturn ( targetQuery ) ;
EntityManager em = SharedEntityManagerCreator . createSharedEntityManager ( emf ) ;
em . createQuery ( "x" ) . getSingleResult ( ) ;
Query query = em . createQuery ( "x" ) ;
assertThat ( ( Query ) query . unwrap ( null ) ) . isSameAs ( targetQuery ) ;
assertThat ( ( Query ) query . unwrap ( targetQuery . getClass ( ) ) ) . isSameAs ( targetQuery ) ;
assertThat ( query . unwrap ( Query . class ) ) . isSameAs ( query ) ;
query . getSingleResult ( ) ;
verify ( query ) . getSingleResult ( ) ;
verify ( targetQ uery) . getSingleResult ( ) ;
verify ( targetEm ) . close ( ) ;
}
@ -137,15 +147,20 @@ class SharedEntityManagerCreatorTests {
@@ -137,15 +147,20 @@ class SharedEntityManagerCreatorTests {
void deferredQueryWithResultList ( ) {
EntityManagerFactory emf = mock ( ) ;
EntityManager targetEm = mock ( ) ;
Query q uery = mock ( ) ;
Query targetQ uery = mock ( ) ;
given ( emf . createEntityManager ( ) ) . willReturn ( targetEm ) ;
given ( targetEm . createQuery ( "x" ) ) . willReturn ( q uery) ;
given ( targetEm . createQuery ( "x" ) ) . willReturn ( targetQ uery) ;
given ( targetEm . isOpen ( ) ) . willReturn ( true ) ;
given ( ( Query ) targetQuery . unwrap ( targetQuery . getClass ( ) ) ) . willReturn ( targetQuery ) ;
EntityManager em = SharedEntityManagerCreator . createSharedEntityManager ( emf ) ;
em . createQuery ( "x" ) . getResultList ( ) ;
Query query = em . createQuery ( "x" ) ;
assertThat ( ( Query ) query . unwrap ( null ) ) . isSameAs ( targetQuery ) ;
assertThat ( ( Query ) query . unwrap ( targetQuery . getClass ( ) ) ) . isSameAs ( targetQuery ) ;
assertThat ( query . unwrap ( Query . class ) ) . isSameAs ( query ) ;
query . getResultList ( ) ;
verify ( query ) . getResultList ( ) ;
verify ( targetQ uery) . getResultList ( ) ;
verify ( targetEm ) . close ( ) ;
}
@ -153,15 +168,20 @@ class SharedEntityManagerCreatorTests {
@@ -153,15 +168,20 @@ class SharedEntityManagerCreatorTests {
void deferredQueryWithResultStream ( ) {
EntityManagerFactory emf = mock ( ) ;
EntityManager targetEm = mock ( ) ;
Query q uery = mock ( ) ;
Query targetQ uery = mock ( ) ;
given ( emf . createEntityManager ( ) ) . willReturn ( targetEm ) ;
given ( targetEm . createQuery ( "x" ) ) . willReturn ( q uery) ;
given ( targetEm . createQuery ( "x" ) ) . willReturn ( targetQ uery) ;
given ( targetEm . isOpen ( ) ) . willReturn ( true ) ;
given ( ( Query ) targetQuery . unwrap ( targetQuery . getClass ( ) ) ) . willReturn ( targetQuery ) ;
EntityManager em = SharedEntityManagerCreator . createSharedEntityManager ( emf ) ;
em . createQuery ( "x" ) . getResultStream ( ) ;
Query query = em . createQuery ( "x" ) ;
assertThat ( ( Query ) query . unwrap ( null ) ) . isSameAs ( targetQuery ) ;
assertThat ( ( Query ) query . unwrap ( targetQuery . getClass ( ) ) ) . isSameAs ( targetQuery ) ;
assertThat ( query . unwrap ( Query . class ) ) . isSameAs ( query ) ;
query . getResultStream ( ) ;
verify ( query ) . getResultStream ( ) ;
verify ( targetQ uery) . getResultStream ( ) ;
verify ( targetEm ) . close ( ) ;
}
@ -169,11 +189,11 @@ class SharedEntityManagerCreatorTests {
@@ -169,11 +189,11 @@ class SharedEntityManagerCreatorTests {
void deferredStoredProcedureQueryWithIndexedParameters ( ) {
EntityManagerFactory emf = mock ( ) ;
EntityManager targetEm = mock ( ) ;
StoredProcedureQuery q uery = mock ( ) ;
StoredProcedureQuery targetQ uery = mock ( ) ;
given ( emf . createEntityManager ( ) ) . willReturn ( targetEm ) ;
given ( targetEm . createStoredProcedureQuery ( "x" ) ) . willReturn ( q uery) ;
willReturn ( "y" ) . given ( q uery) . getOutputParameterValue ( 0 ) ;
willReturn ( "z" ) . given ( q uery) . getOutputParameterValue ( 2 ) ;
given ( targetEm . createStoredProcedureQuery ( "x" ) ) . willReturn ( targetQ uery) ;
willReturn ( "y" ) . given ( targetQ uery) . getOutputParameterValue ( 0 ) ;
willReturn ( "z" ) . given ( targetQ uery) . getOutputParameterValue ( 2 ) ;
given ( targetEm . isOpen ( ) ) . willReturn ( true ) ;
EntityManager em = SharedEntityManagerCreator . createSharedEntityManager ( emf ) ;
@ -187,12 +207,12 @@ class SharedEntityManagerCreatorTests {
@@ -187,12 +207,12 @@ class SharedEntityManagerCreatorTests {
spq . getOutputParameterValue ( 1 ) ) ;
assertThat ( spq . getOutputParameterValue ( 2 ) ) . isEqualTo ( "z" ) ;
verify ( q uery) . registerStoredProcedureParameter ( 0 , String . class , ParameterMode . OUT ) ;
verify ( q uery) . registerStoredProcedureParameter ( 1 , Number . class , ParameterMode . IN ) ;
verify ( q uery) . registerStoredProcedureParameter ( 2 , Object . class , ParameterMode . INOUT ) ;
verify ( q uery) . execute ( ) ;
verify ( targetQ uery) . registerStoredProcedureParameter ( 0 , String . class , ParameterMode . OUT ) ;
verify ( targetQ uery) . registerStoredProcedureParameter ( 1 , Number . class , ParameterMode . IN ) ;
verify ( targetQ uery) . registerStoredProcedureParameter ( 2 , Object . class , ParameterMode . INOUT ) ;
verify ( targetQ uery) . execute ( ) ;
verify ( targetEm ) . close ( ) ;
verifyNoMoreInteractions ( q uery) ;
verifyNoMoreInteractions ( targetQ uery) ;
verifyNoMoreInteractions ( targetEm ) ;
}
@ -200,11 +220,11 @@ class SharedEntityManagerCreatorTests {
@@ -200,11 +220,11 @@ class SharedEntityManagerCreatorTests {
void deferredStoredProcedureQueryWithNamedParameters ( ) {
EntityManagerFactory emf = mock ( ) ;
EntityManager targetEm = mock ( ) ;
StoredProcedureQuery q uery = mock ( ) ;
StoredProcedureQuery targetQ uery = mock ( ) ;
given ( emf . createEntityManager ( ) ) . willReturn ( targetEm ) ;
given ( targetEm . createStoredProcedureQuery ( "x" ) ) . willReturn ( q uery) ;
willReturn ( "y" ) . given ( q uery) . getOutputParameterValue ( "a" ) ;
willReturn ( "z" ) . given ( q uery) . getOutputParameterValue ( "c" ) ;
given ( targetEm . createStoredProcedureQuery ( "x" ) ) . willReturn ( targetQ uery) ;
willReturn ( "y" ) . given ( targetQ uery) . getOutputParameterValue ( "a" ) ;
willReturn ( "z" ) . given ( targetQ uery) . getOutputParameterValue ( "c" ) ;
given ( targetEm . isOpen ( ) ) . willReturn ( true ) ;
EntityManager em = SharedEntityManagerCreator . createSharedEntityManager ( emf ) ;
@ -218,12 +238,12 @@ class SharedEntityManagerCreatorTests {
@@ -218,12 +238,12 @@ class SharedEntityManagerCreatorTests {
spq . getOutputParameterValue ( "b" ) ) ;
assertThat ( spq . getOutputParameterValue ( "c" ) ) . isEqualTo ( "z" ) ;
verify ( q uery) . registerStoredProcedureParameter ( "a" , String . class , ParameterMode . OUT ) ;
verify ( q uery) . registerStoredProcedureParameter ( "b" , Number . class , ParameterMode . IN ) ;
verify ( q uery) . registerStoredProcedureParameter ( "c" , Object . class , ParameterMode . INOUT ) ;
verify ( q uery) . execute ( ) ;
verify ( targetQ uery) . registerStoredProcedureParameter ( "a" , String . class , ParameterMode . OUT ) ;
verify ( targetQ uery) . registerStoredProcedureParameter ( "b" , Number . class , ParameterMode . IN ) ;
verify ( targetQ uery) . registerStoredProcedureParameter ( "c" , Object . class , ParameterMode . INOUT ) ;
verify ( targetQ uery) . execute ( ) ;
verify ( targetEm ) . close ( ) ;
verifyNoMoreInteractions ( q uery) ;
verifyNoMoreInteractions ( targetQ uery) ;
verifyNoMoreInteractions ( targetEm ) ;
}