/** * This Source Code Form is subject to the terms of the Mozilla Public License, * v. 2.0. If a copy of the MPL was not distributed with this file, You can * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. * * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS * graphic logo is a trademark of OpenMRS Inc. */ package org.openmrs.test; import java.io.FileOutputStream; import org.dbunit.database.DatabaseConnection; import org.dbunit.database.IDatabaseConnection; import org.dbunit.database.QueryDataSet; import org.dbunit.dataset.xml.FlatXmlDataSet; import org.junit.Ignore; import org.junit.Test; /** * This class can be run like a junit test, but it is not actually a test. JUnit won't run it * because it does not have "Test" in its class name. The * {@link BaseContextSensitiveTest#INITIAL_DATA_SET_XML_FILENAME} file is overwritten by values in * the database defined by the runtime properties */ @Ignore public class CreateInitialDataSet extends BaseContextSensitiveTest { /** * This test creates an xml dbunit file from the current database connection information found * in the runtime properties. This method has to "skip over the base setup" because it tries to * do things (like initialize the database) that shouldn't be done to a standard mysql database. * * @throws Exception */ @Test @SkipBaseSetup public void shouldCreateInitialTestDataSetXmlFile() throws Exception { // only run this test if it is being run alone. // this allows the junit-report ant target and the "right- // click-on-/test/api-->run as-->junit test" methods to skip // over this whole "test" if (getLoadCount() != 1) return; // database connection for dbunit IDatabaseConnection connection = new DatabaseConnection(getConnection()); // partial database export QueryDataSet initialDataSet = new QueryDataSet(connection); initialDataSet.addTable("concept", "SELECT * FROM concept"); initialDataSet.addTable("concept_answer", "SELECT * FROM concept_answer"); initialDataSet.addTable("concept_class", "SELECT * FROM concept_class"); initialDataSet.addTable("concept_datatype", "SELECT * FROM concept_datatype"); initialDataSet.addTable("concept_name", "SELECT * FROM concept_name"); initialDataSet.addTable("concept_numeric", "SELECT * FROM concept_numeric"); initialDataSet.addTable("concept_set", "SELECT * FROM concept_set"); initialDataSet.addTable("concept_synonym", "SELECT * FROM concept_synonym"); initialDataSet.addTable("drug", "SELECT * FROM drug"); initialDataSet.addTable("drug_order", "SELECT * FROM drug_order"); initialDataSet.addTable("encounter", "SELECT * FROM encounter"); initialDataSet.addTable("encounter_type", "SELECT * FROM encounter_type"); initialDataSet.addTable("location", "SELECT * FROM location"); initialDataSet.addTable("obs", "SELECT * FROM obs"); initialDataSet.addTable("order_type", "SELECT * FROM order_type"); initialDataSet.addTable("orders", "SELECT * FROM orders"); initialDataSet.addTable("patient", "SELECT * FROM patient"); initialDataSet.addTable("patient_identifier", "SELECT * FROM patient_identifier"); initialDataSet.addTable("patient_identifier_type", "SELECT * FROM patient_identifier_type"); initialDataSet.addTable("patient_program", "SELECT * FROM patient_program"); initialDataSet.addTable("patient_state", "SELECT * FROM patient_state"); initialDataSet.addTable("person", "SELECT * FROM person"); initialDataSet.addTable("person_address", "SELECT * FROM person_address"); initialDataSet.addTable("person_attribute", "SELECT * FROM person_attribute"); initialDataSet.addTable("person_attribute_type", "SELECT * FROM person_attribute_type"); initialDataSet.addTable("person_name", "SELECT * FROM person_name"); initialDataSet.addTable("privilege", "SELECT * FROM privilege"); initialDataSet.addTable("program", "SELECT * FROM program"); initialDataSet.addTable("program_workflow", "SELECT * FROM program_workflow"); initialDataSet.addTable("program_workflow_state", "SELECT * FROM program_workflow_state"); initialDataSet.addTable("relationship", "SELECT * FROM relationship"); initialDataSet.addTable("relationship_type", "SELECT * FROM relationship_type"); initialDataSet.addTable("role", "SELECT * FROM role"); initialDataSet.addTable("role_privilege", "SELECT * FROM role_privilege"); initialDataSet.addTable("role_role", "SELECT * FROM role_role"); initialDataSet.addTable("user_role", "SELECT * FROM user_role"); initialDataSet.addTable("users", "SELECT * FROM users"); /* initialDataSet.addTable("field", "SELECT * FROM field"); initialDataSet.addTable("field_answer", "SELECT * FROM field_answer"); initialDataSet.addTable("field_type", "SELECT * FROM field_type"); initialDataSet.addTable("form", "SELECT * FROM form"); initialDataSet.addTable("form_field", "SELECT * FROM form_field"); initialDataSet.addTable("hl7_source", "SELECT * FROM hl7_source"); */ FlatXmlDataSet.write(initialDataSet, new FileOutputStream("test/api/org/openmrs/logic/include/LogicBasicTest.xml")); // full database export //IDataSet fullDataSet = connection.createDataSet(); //FlatXmlDataSet.write(fullDataSet, new FileOutputStream("full.xml")); // dependent tables database export: export table X and all tables that // have a PK which is a FK on X, in the right order for insertion //String[] depTableNames = TablesDependencyHelper.getAllDependentTables(connection, "X"); //IDataSet depDataset = connection.createDataSet( depTableNames ); //FlatXmlDataSet.write(depDataSet, new FileOutputStream("dependents.xml")); //TestUtil.printOutTableContents(getConnection(), "encounter_type", "encounter"); } /** * Make sure we use the database defined by the runtime properties and not the hsql in-memory * database * * @see org.openmrs.test.BaseContextSensitiveTest#useInMemoryDatabase() */ @Override public Boolean useInMemoryDatabase() { return false; } }