Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import static org.fest.assertions.api.Assertions.assertThat;
- import java.io.File;
- import java.io.IOException;
- import java.nio.file.Files;
- import java.util.EnumSet;
- import org.hibernate.boot.MetadataSources;
- import org.hibernate.boot.registry.StandardServiceRegistry;
- import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
- import org.hibernate.boot.spi.MetadataImplementor;
- import org.hibernate.dialect.MySQL57InnoDBDialect;
- import org.hibernate.tool.hbm2ddl.SchemaUpdate;
- import org.hibernate.tool.schema.TargetType;
- import org.junit.Test;
- /**
- * Created by r.santschi on 17.11.2016.
- */
- public class RefDataSchemaTest {
- @Test
- public void testSchema() throws IOException {
- StandardServiceRegistry ssr = new StandardServiceRegistryBuilder()
- //.applySetting( Environment.HBM2DDL_AUTO, "none" )
- .applySetting("hibernate.connection.driver_class", "com.mysql.jdbc.Driver")
- .applySetting("hibernate.connection.url", "jdbc:mysql://localhost:3306/")
- .applySetting("hibernate.connection.username", "faast")
- .applySetting("hibernate.connection.password", "faast")
- .applySetting("hibernate.dialect", MySQL57InnoDBDialect.class.getCanonicalName())
- .build();
- try {
- File output = File.createTempFile("update_script", ".sql");
- output.deleteOnExit();
- final MetadataImplementor metadata = (MetadataImplementor) new MetadataSources(ssr)
- .addResource("ch/entity/Account.hbm.xml")
- .buildMetadata();
- metadata.validate();
- SchemaUpdate su = new SchemaUpdate();
- su.setHaltOnError(true);
- su.setOutputFile(output.getAbsolutePath());
- su.setDelimiter(";");
- su.setFormat(true);
- EnumSet<TargetType> targetTypes = EnumSet.of(TargetType.STDOUT);
- su.execute(targetTypes, metadata, ssr);
- String fileContent = new String(Files.readAllBytes(output.toPath()));
- assertThat(fileContent.toLowerCase()).isEqualTo("");
- } finally {
- StandardServiceRegistryBuilder.destroy(ssr);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement