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  package org.dbunit.dataset;
22  
23  import java.io.FileReader;
24  
25  import org.dbunit.dataset.xml.FlatXmlDataSet;
26  import org.dbunit.dataset.xml.FlatXmlDataSetBuilder;
27  import org.dbunit.dataset.xml.FlatXmlDataSetTest;
28  import org.dbunit.testutil.TestUtils;
29  
30  /**
31   * @author Manuel Laflamme
32   * @since Mar 17, 2003
33   * @version $Revision$
34   */
35  public class ReplacementDataSetTest extends AbstractDataSetDecoratorTest
36  {
37      public ReplacementDataSetTest(String s)
38      {
39          super(s);
40      }
41  
42      ////////////////////////////////////////////////////////////////////////////
43      // AbstractDataSetTest class
44  
45      protected IDataSet createDataSet() throws Exception
46      {
47          return new ReplacementDataSet(new FlatXmlDataSetBuilder().build(new FileReader(
48                  FlatXmlDataSetTest.DATASET_FILE)));
49      }
50  
51      public void testConstructor_DataSetHasCaseSensitive_ReplacementSetHasCaseSensitive()
52              throws Exception
53      {
54          FileReader xmlReader = new FileReader(FlatXmlDataSetTest.DATASET_FILE);
55          FlatXmlDataSet flatDataSet = new FlatXmlDataSetBuilder()
56                  .setCaseSensitiveTableNames(true).build(xmlReader);
57          ReplacementDataSet dataSet = new ReplacementDataSet(flatDataSet);
58  
59          assertTrue(dataSet.isCaseSensitiveTableNames());
60      }
61  
62      public void testConstructor_DifferentCaseTableNames_CaseSensitiveMatch()
63              throws Exception
64      {
65          FileReader fileReader = TestUtils
66                  .getFileReader("/xml/replacementDataSetCaseSensitive.xml");
67          IDataSet originalDataSet = new FlatXmlDataSetBuilder()
68                  .setCaseSensitiveTableNames(true).build(fileReader);
69          assertCaseSensitiveTables(originalDataSet);
70  
71          IDataSet replacementDataSet = new ReplacementDataSet(originalDataSet);
72          assertCaseSensitiveTables(replacementDataSet);
73      }
74  
75      private void assertCaseSensitiveTables(IDataSet dataSet) throws DataSetException
76      {
77          ITable[] tables = dataSet.getTables();
78          assertEquals(
79                  "Should be 2 tables with case-sensitive table names; 1 without.",
80                  2, tables.length);
81  
82          String tableName0 = tables[0].getTableMetaData().getTableName();
83          String tableName1 = tables[1].getTableMetaData().getTableName();
84  
85          assertEquals("TEST_TABLE", tableName0);
86          assertEquals("test_table", tableName1);
87          assertEquals("row 0 col 0", tables[0].getValue(0, "COLUMN0"));
88          assertEquals("row 1 col 0", tables[1].getValue(0, "COLUMN0"));
89      }
90  }