@Override public ProcedureCall createStoredProcedureCall(String procedureName, String... resultSetMappings) { return delegate.createStoredProcedureCall( procedureName, resultSetMappings ); }
@Override public ProcedureCall createStoredProcedureCall(String procedureName) { return delegate.createStoredProcedureCall( procedureName ); }
@Override public ProcedureCall createStoredProcedureCall(String procedureName, Class... resultClasses) { return delegate.createStoredProcedureCall( procedureName, resultClasses ); }
@Test public void testParameterBindTypeMismatch() { inTransaction( session -> { try { final ProcedureCall call1 = session.createStoredProcedureCall( "test" ); call1.registerStoredProcedureParameter( 1, Integer.class, ParameterMode.IN ); call1.setParameter( 1, new Date() ); fail( "expecting failure" ); } catch (IllegalArgumentException expected) { } } ); }
@Test public void testInvalidParameterReference() { inTransaction( session -> { final ProcedureCall call1 = session.createStoredProcedureCall( "test" ); call1.registerStoredProcedureParameter(1, Integer.class, ParameterMode.IN); final Parameter<Integer> p1_1 = (Parameter<Integer>) call1.getParameter( 1 ); call1.setParameter( 1, 1 ); final ProcedureCall call2 = session.createStoredProcedureCall( "test" ); call2.registerStoredProcedureParameter(1, Integer.class, ParameterMode.IN); call2.setParameter( 1, 1 ); try { call2.getParameterValue( p1_1 ); fail( "Expecting failure" ); } catch (IllegalArgumentException expected) { } } ); }
@Test public void parameterValueAccess() { inTransaction( session -> { final ProcedureCall call = session.createStoredProcedureCall( "test" ); call.registerStoredProcedureParameter(1, Integer.class, ParameterMode.IN); call.registerStoredProcedureParameter( 2, String.class, ParameterMode.OUT); call.setParameter( 1, 1 ); call.getParameterValue( 1 ); } ); }
@Test public void testMappingSomeFields() { inTransaction( session -> { final ProcedureCall call = session.createStoredProcedureCall( "findOneUser", "some-fields" ); final ProcedureOutputs procedureResult = call.getOutputs(); final Output currentOutput = procedureResult.getCurrent(); assertNotNull( currentOutput ); final ResultSetOutput resultSetReturn = assertTyping( ResultSetOutput.class, currentOutput ); final Object result = resultSetReturn.getSingleResult(); assertTyping( H2ProcTesting.MyEntity.class, result ); assertEquals( "Steve", ( (H2ProcTesting.MyEntity) result ).name ); } ); }
@Test public void testMappingAllFields() { inTransaction( session -> { final ProcedureCall call = session.createStoredProcedureCall( "findOneUser", "all-fields" ); final ProcedureOutputs procedureResult = call.getOutputs(); final Output currentOutput = procedureResult.getCurrent(); assertNotNull( currentOutput ); final ResultSetOutput resultSetReturn = assertTyping( ResultSetOutput.class, currentOutput ); final Object result = resultSetReturn.getSingleResult(); assertTyping( H2ProcTesting.MyEntity.class, result ); assertEquals( "Steve", ( (H2ProcTesting.MyEntity) result ).name ); } ); }
@Test public void testResultClass() { inTransaction( session -> { final ProcedureCall call = session.createStoredProcedureCall( "findOneUser", H2ProcTesting.MyEntity.class ); final ProcedureOutputs procedureResult = call.getOutputs(); final Output currentOutput = procedureResult.getCurrent(); assertNotNull( currentOutput ); final ResultSetOutput resultSetReturn = assertTyping( ResultSetOutput.class, currentOutput ); final Object result = resultSetReturn.getSingleResult(); assertTyping( H2ProcTesting.MyEntity.class, result ); assertEquals( "Steve", ( (H2ProcTesting.MyEntity) result ).name ); } ); }
@Test public void testMappingNoFields() { inTransaction( session -> { final ProcedureCall call = session.createStoredProcedureCall( "findOneUser", "no-fields" ); final ProcedureOutputs procedureResult = call.getOutputs(); final Output currentOutput = procedureResult.getCurrent(); assertNotNull( currentOutput ); final ResultSetOutput resultSetReturn = assertTyping( ResultSetOutput.class, currentOutput ); final Object result = resultSetReturn.getSingleResult(); assertTyping( H2ProcTesting.MyEntity.class, result ); assertEquals( "Steve", ( (H2ProcTesting.MyEntity) result ).name ); } ); } }
@Override public ProcedureCall createStoredProcedureCall(String procedureName) { return delegate.createStoredProcedureCall( procedureName ); }
@Override public ProcedureCall createStoredProcedureCall(String procedureName, Class... resultClasses) { return delegate.createStoredProcedureCall( procedureName, resultClasses ); }
@Override public ProcedureCall createStoredProcedureCall(String procedureName, String... resultSetMappings) { return delegate.createStoredProcedureCall( procedureName, resultSetMappings ); }