/** * */ package rocks.inspectit.agent.java.sensor.method.jdbc; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.contains; import static org.hamcrest.Matchers.empty; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.not; import java.util.List; import org.testng.annotations.Test; import rocks.inspectit.agent.java.AbstractLogSupport; /** * @author Stefan Siegl * */ @SuppressWarnings("PMD") public class StatementStorageTest extends AbstractLogSupport { @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'"))); } @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())); } @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))); } @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 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"))); } }