View Javadoc
1   /*
2    *
3    * The DbUnit Database Testing Framework
4    * Copyright (C)2002-2004, DbUnit.org
5    *
6    * This library is free software; you can redistribute it and/or
7    * modify it under the terms of the GNU Lesser General Public
8    * License as published by the Free Software Foundation; either
9    * version 2.1 of the License, or (at your option) any later version.
10   *
11   * This library is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14   * Lesser General Public License for more details.
15   *
16   * You should have received a copy of the GNU Lesser General Public
17   * License along with this library; if not, write to the Free Software
18   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19   *
20   */
21  
22  package org.dbunit.operation;
23  
24  import com.mockobjects.ExpectationCounter;
25  import com.mockobjects.Verifiable;
26  import org.dbunit.DatabaseUnitException;
27  import org.dbunit.database.IDatabaseConnection;
28  import org.dbunit.dataset.IDataSet;
29  
30  import java.sql.SQLException;
31  
32  /**
33   * @author Manuel Laflamme
34   * @version $Revision$
35   * @since Mar 16, 2002
36   */
37  public class MockDatabaseOperation extends DatabaseOperation implements Verifiable
38  {
39      private ExpectationCounter _executeCalls =
40              new ExpectationCounter("MockDatabaseOperation.execute");
41      private Exception _executeException = null;
42  
43      public void setExpectedExecuteCalls(int callsCount)
44      {
45          _executeCalls.setExpected(callsCount);
46      }
47  
48      public void setupThrowExceptionOnExecute(Exception exception)
49      {
50          _executeException = exception;
51      }
52  
53  
54      ///////////////////////////////////////////////////////////////////////////
55      // Verifiable interface
56  
57      public void verify()
58      {
59          _executeCalls.verify();
60      }
61  
62      ///////////////////////////////////////////////////////////////////////////
63      // DatabaseOperation class
64  
65      public void execute(IDatabaseConnection connection, IDataSet dataSet)
66              throws DatabaseUnitException, SQLException
67      {
68          _executeCalls.inc();
69  
70          if (_executeException instanceof SQLException)
71          {
72              throw (SQLException)_executeException;
73          }
74          else if (_executeException instanceof DatabaseUnitException)
75          {
76              throw (DatabaseUnitException)_executeException;
77          }
78          else if (_executeException instanceof RuntimeException)
79          {
80              throw (RuntimeException)_executeException;
81          }
82      }
83  }
84  
85