1   package com.diasparsoftware.jdbc.test;
2   
3   import java.util.Arrays;
4   
5   import junit.framework.TestCase;
6   
7   import com.diasparsoftware.java.sql.PreparedStatementData;
8   import com.diasparsoftware.java.util.DateUtil;
9   import com.diasparsoftware.jdbc.*;
10  import com.mockobjects.sql.*;
11  
12  public class ExecuteInsertStatementTest extends TestCase {
13      public void testExecuteInsertStatement() throws Exception {
14          String insertSqlString = "insert into HELLO (A, B, C) values (?, ?, ?)";
15          int expectedRowsInserted = 1;
16  
17          MockPreparedStatement mockInsertStatement = new MockPreparedStatement();
18  
19          mockInsertStatement.setExpectedClearParametersCalls(1);
20          mockInsertStatement.setExpectedCloseCalls(1);
21          mockInsertStatement.addUpdateCount(1);
22          mockInsertStatement.addExpectedSetParameters(new Object[]{"a",
23              new Integer(762), JdbcUtil.makeTimestamp(1974, 5, 4)});
24  
25          MockConnection2 mockConnection = new MockConnection2();
26          mockConnection.setupAddPreparedStatement(insertSqlString,
27                  mockInsertStatement);
28  
29          PreparedStatementExecuter queryExecuter = new JdbcQueryExecuter(
30                  mockConnection);
31  
32          PreparedStatementData insertStatementData = new PreparedStatementData();
33          insertStatementData.sqlString = insertSqlString;
34          insertStatementData.parameters = Arrays.asList(new Object[]{"a",
35              new Integer(762), DateUtil.makeDate(1974, 5, 4)});
36  
37          assertEquals(expectedRowsInserted, queryExecuter
38                  .executeInsertStatement(insertStatementData));
39  
40          mockInsertStatement.verify();
41          mockConnection.verify();
42      }
43  }