package com.sun.demo.addressbook.db; import com.windowtester.runtime.swing.condition.WindowDisposedCondition; import com.windowtester.runtime.swing.locator.JButtonLocator; import com.windowtester.runtime.swing.UITestCaseSwing; import com.windowtester.runtime.IUIContext; import com.windowtester.runtime.swing.locator.LabeledTextLocator; import java.awt.event.KeyEvent; import java.io.FileInputStream; import org.dbunit.Assertion; import org.dbunit.JdbcDatabaseTester; import org.dbunit.database.IDatabaseConnection; import org.dbunit.dataset.Column; import org.dbunit.dataset.IDataSet; import org.dbunit.dataset.ITable; import org.dbunit.dataset.filter.DefaultColumnFilter; import org.dbunit.dataset.xml.FlatXmlDataSet; import org.dbunit.dataset.xml.FlatXmlDataSetBuilder; import org.dbunit.operation.DatabaseOperation; import com.windowtester.runtime.WT; /** * To the generated class by WindowTesterPro, you have to override setUp() to * establish the connection to the DB in order to test it. * * @author Juan * */ public class AddContactDataTest extends UITestCaseSwing { private FlatXmlDataSet expected; private IDatabaseConnection connection; private JdbcDatabaseTester tester; private IDataSet actual; @Override protected void setUp() throws Exception { WT.setLocaleToCurrent(); String dbName = "DefaultAddressBook"; FlatXmlDataSet initialData = new FlatXmlDataSetBuilder() .build(new FileInputStream("data/dataset1address.xml")); expected = new FlatXmlDataSetBuilder().build(new FileInputStream( "data/dataset2addresses.xml")); new AddressDao(); tester = new JdbcDatabaseTester( "org.apache.derby.jdbc.EmbeddedDriver", "jdbc:derby:" + dbName, "addressuser", "addressuser", "APP"); connection = tester.getConnection(); DatabaseOperation.CLEAN_INSERT.execute(connection, initialData); //run(); } /** * Create an Instance */ public AddContactDataTest() { super(com.sun.demo.addressbook.AddressFrame.class); } /** * Main test method. */ public void testAddContactData() throws Exception { IUIContext ui = getUI(); ui.click(new JButtonLocator("New")); ui.click(new LabeledTextLocator("Last Name")); ui.enterText("LECRIVAIN"); ui.keyClick(KeyEvent.VK_TAB); ui.enterText("Benoit"); ui.keyClick(KeyEvent.VK_TAB); ui.enterText("Alexandre"); ui.keyClick(KeyEvent.VK_TAB); ui.enterText("0225688722"); ui.keyClick(KeyEvent.VK_TAB); ui.enterText("benoit.lecrivain@hotmail.com"); ui.keyClick(KeyEvent.VK_TAB); ui.enterText("Chateau d Apigne"); ui.keyClick(KeyEvent.VK_TAB); ui.enterText("Porte 4"); ui.keyClick(KeyEvent.VK_TAB); ui.enterText("Apigne"); ui.keyClick(KeyEvent.VK_TAB); ui.enterText("Bretagne"); ui.keyClick(KeyEvent.VK_TAB); ui.enterText("35650"); ui.keyClick(KeyEvent.VK_TAB); ui.enterText("France"); ui.click(new JButtonLocator("Save")); actual = connection.createDataSet(); String tableName = "Address"; ITable expectedTable = expected.getTable(tableName); ITable actualTable = actual.getTable(tableName); Column[] filter = expected.getTableMetaData(tableName).getColumns(); ITable actualFilteredTable = DefaultColumnFilter.includedColumnsTable(actualTable, filter); Assertion.assertEquals(expectedTable, actualFilteredTable); //ui.wait(new WindowDisposedCondition("Address Book Demo")); } @Override protected void tearDown() throws Exception { super.tearDown(); connection = tester.getConnection(); DatabaseOperation.DELETE_ALL.execute(connection, actual); connection.close(); } }