package com.querydsl.sql.codegen;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.sql.SQLException;
import java.sql.Statement;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Rule;
import org.junit.Test;
import org.junit.experimental.categories.Category;
import org.junit.rules.TemporaryFolder;
import com.google.common.base.Charsets;
import com.google.common.io.Resources;
import com.querydsl.core.testutil.H2;
import com.querydsl.sql.Connections;
@Category(H2.class)
public class ExportH2TwoSchemasTest {
@Rule
public TemporaryFolder folder = new TemporaryFolder();
@BeforeClass
public static void setUpClass() throws Exception {
Connections.initH2();
Statement stmt = Connections.getStatement();
stmt.execute("create schema if not exists newschema");
stmt.execute("create table if not exists " +
"newschema.SURVEY2(ID2 int auto_increment, NAME2 varchar(30), NAME3 varchar(30))");
}
@AfterClass
public static void tearDownAfterClass() throws SQLException {
Connections.close();
}
@Test
public void export() throws SQLException, MalformedURLException, IOException {
NamingStrategy namingStrategy = new DefaultNamingStrategy();
MetaDataExporter exporter = new MetaDataExporter();
exporter.setSchemaPattern(null);
exporter.setPackageName("test");
exporter.setTargetFolder(folder.getRoot());
exporter.setNamingStrategy(namingStrategy);
exporter.export(Connections.getConnection().getMetaData());
String contents = Resources.toString(new File(folder.getRoot(), "test/QSurvey.java").toURI().toURL(),
Charsets.UTF_8);
assertTrue(contents.contains("id"));
assertTrue(contents.contains("name"));
assertTrue(contents.contains("name2"));
assertFalse(contents.contains("id2"));
assertFalse(contents.contains("name3"));
}
}