@Test public void addSQLWithParameterAndRead() { // Setup StatementStorage storage = new StatementStorage(); storage.addSql("SELECT * FROM CARS WHERE CAR_ID = ?"); Object marker = "I am the prepared Statement"; storage.addPreparedStatement(marker); storage.addParameter(marker, 0, "1"); List<String> result = storage.getParameters(marker); assertThat(result, contains(equalTo("'1'"))); }
/** * {@inheritDoc} */ @Override public void secondAfterBody(ICoreService coreService, long methodId, long sensorTypeId, Object object, Object[] parameters, Object result, boolean exception, RegisteredSensorConfig rsc) { // NOCHK:8-params statementStorage.removeSql(); }
/** * {@inheritDoc} */ @Override public void secondAfterBody(ICoreService coreService, long methodId, long sensorTypeId, Object object, Object[] parameters, Object result, boolean exception, RegisteredSensorConfig rsc) { // NOCHK:8-params if (threadLast.get().booleanValue()) { threadLast.set(Boolean.FALSE); List<String> parameterTypes = rsc.getParameterTypes(); if (METHOD_VALUE_MAP.containsKey(rsc.getTargetMethodName()) && !parameterTypes.isEmpty() && "int".equals(parameterTypes.get(0))) { // subtract one as the index starts at 1, and not at 0 int index = ((Integer) parameters[0]).intValue() - 1; Object value = METHOD_VALUE_MAP.get(rsc.getTargetMethodName()); statementStorage.addParameter(object, index, value); } else if ((parameterTypes.size() >= 2) && "int".equals(parameterTypes.get(0))) { // subtract one as the index starts at 1, and not at 0 int index = ((Integer) parameters[0]).intValue() - 1; Object value = parameters[1]; statementStorage.addParameter(object, index, value); } else if ("clearParameters".equals(rsc.getTargetMethodName())) { statementStorage.clearParameters(object); } } }
/** * Test setting of the correct index and parameter value. */ @SuppressWarnings("unchecked") @Test public void setCorrectParameterAndIndex() { List<String> parameterTypes = Mockito.mock(List.class); Mockito.when(parameterTypes.size()).thenReturn(2); Mockito.when(parameterTypes.get(0)).thenReturn("int"); Mockito.when(rsc.getParameterTypes()).thenReturn(parameterTypes); Object[] parameters = new Object[] { 1, "Value" }; Object object = new Object(); preparedStatementParameterHook.beforeBody(0, 0, object, parameters, rsc); preparedStatementParameterHook.firstAfterBody(0, 0, object, parameters, null, false, rsc); preparedStatementParameterHook.secondAfterBody(coreService, 0, 0, object, parameters, null, false, rsc); Mockito.verify(statementStorage, Mockito.times(1)).addParameter(object, 0, "Value"); Mockito.verifyNoMoreInteractions(statementStorage); Mockito.verifyZeroInteractions(coreService); }
threadLast.set(Boolean.FALSE); String sql = statementStorage.getPreparedStatement(object); if (null != sql) { double duration = endTime - startTime; List<String> params = statementStorage.getParameters(object); long platformId = platformManager.getPlatformId();
public void afterConstructor(ICoreService coreService, long methodId, long sensorTypeId, Object object, Object[] parameters, RegisteredSensorConfig rsc) { try { statementStorage.addPreparedStatement(object); } catch (NoSuchElementException e) {
/** * {@inheritDoc} */ @Override public void beforeBody(long methodId, long sensorTypeId, Object object, Object[] parameters, RegisteredSensorConfig rsc) { String sql = (String) parameters[0]; statementStorage.addSql(sql); }
/** * Tests clear parameters method being invoked. */ @SuppressWarnings("unchecked") @Test public void clearParameters() { List<String> parameterTypes = Mockito.mock(List.class); Mockito.when(parameterTypes.size()).thenReturn(0); Mockito.when(rsc.getParameterTypes()).thenReturn(parameterTypes); Mockito.when(rsc.getTargetMethodName()).thenReturn("clearParameters"); Object[] parameters = new Object[0]; Object object = new Object(); preparedStatementParameterHook.beforeBody(0, 0, object, parameters, rsc); preparedStatementParameterHook.firstAfterBody(0, 0, object, parameters, null, false, rsc); preparedStatementParameterHook.secondAfterBody(coreService, 0, 0, object, parameters, null, false, rsc); Mockito.verify(statementStorage, Mockito.times(1)).clearParameters(object); Mockito.verifyNoMoreInteractions(statementStorage); Mockito.verifyZeroInteractions(coreService); }
/** * Test that setNull() methods of the prepare statement will set the <code>null</code> as the * parameter value. */ @SuppressWarnings("unchecked") @Test public void setNull() { List<String> parameterTypes = Mockito.mock(List.class); Mockito.when(parameterTypes.size()).thenReturn(2); Mockito.when(parameterTypes.get(0)).thenReturn("int"); Mockito.when(rsc.getParameterTypes()).thenReturn(parameterTypes); Mockito.when(rsc.getTargetMethodName()).thenReturn("setNull"); Object[] parameters = new Object[] { 1, 2 }; Object object = new Object(); preparedStatementParameterHook.beforeBody(0, 0, object, parameters, rsc); preparedStatementParameterHook.firstAfterBody(0, 0, object, parameters, null, false, rsc); preparedStatementParameterHook.secondAfterBody(coreService, 0, 0, object, parameters, null, false, rsc); Mockito.verify(statementStorage, Mockito.times(1)).addParameter(object, 0, null); Mockito.verifyNoMoreInteractions(statementStorage); Mockito.verifyZeroInteractions(coreService); }
@BeforeMethod public void initTestClass() { Mockito.doThrow(myNoSuchElementException).when(statementStorage).addPreparedStatement(Matchers.anyObject()); }
@Test public void addSQLWithParameterAndAddWrongIndex() { // Setup StatementStorage storage = new StatementStorage(); storage.addSql("SELECT * FROM CARS WHERE CAR_ID = ?"); Object marker = "I am the prepared Statement"; storage.addPreparedStatement(marker); storage.addParameter(marker, 1, "1"); List<String> result = storage.getParameters(marker); assertThat(result, is(not(equalTo(null)))); assertThat(result, contains(equalTo(null))); }
/** * Tests that the methods with big data structures will not set the complete structure, but a * simple marker instead. * * @param methodName * Method name that holds big structure. */ @SuppressWarnings("unchecked") @Test(dataProvider = "methodsWithBigDataStructures") public void methodWithBigData(String methodName) { List<String> parameterTypes = Mockito.mock(List.class); Mockito.when(parameterTypes.size()).thenReturn(2); Mockito.when(parameterTypes.get(0)).thenReturn("int"); Mockito.when(rsc.getParameterTypes()).thenReturn(parameterTypes); Mockito.when(rsc.getTargetMethodName()).thenReturn(methodName); Object[] parameters = new Object[] { 1, "Value" }; Object object = new Object(); preparedStatementParameterHook.beforeBody(0, 0, object, parameters, rsc); preparedStatementParameterHook.firstAfterBody(0, 0, object, parameters, null, false, rsc); preparedStatementParameterHook.secondAfterBody(coreService, 0, 0, object, parameters, null, false, rsc); String expected = "[" + methodName.substring("set".length()) + "]"; Mockito.verify(statementStorage, Mockito.times(1)).addParameter(object, 0, expected); Mockito.verifyNoMoreInteractions(statementStorage); Mockito.verifyZeroInteractions(coreService); }
@Test public void addSQLWithParameterAndAddNullValue() { // Setup StatementStorage storage = new StatementStorage(); storage.addSql("SELECT * FROM CARS WHERE CAR_ID = ?"); Object marker = "I am the prepared Statement"; storage.addPreparedStatement(marker); storage.addParameter(marker, 0, null); List<String> result = storage.getParameters(marker); assertThat(result, is(not(equalTo(null)))); assertThat(result, contains(equalTo("null"))); } }
@Test public void addSQLWithParameterAndNegativeIndex() { // Setup StatementStorage storage = new StatementStorage(); storage.addSql("SELECT * FROM CARS WHERE CAR_ID = ?"); Object marker = "I am the prepared Statement"; storage.addPreparedStatement(marker); storage.addParameter(marker, -1, "1"); List<String> result = storage.getParameters(marker); assertThat(result, is(not(equalTo(null)))); assertThat(result, contains(equalTo(null))); }
@Test public void addSQLWithoutParameterAndSetParameter() { // Setup StatementStorage storage = new StatementStorage(); storage.addSql("SELECT * FROM CARS"); Object marker = "I am the prepared Statement"; storage.addPreparedStatement(marker); storage.addParameter(marker, 0, "1"); List<String> result = storage.getParameters(marker); assertThat(result, is(not(equalTo(null)))); assertThat(result, is(empty())); }