package uk.co.optimisticpanda.dropwizard.dbdeploy;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.StringWriter;
import org.junit.Test;
public class ClasspathUndoTemplateBasedApplierTest {
@Test
public void checkCanLoadTemplatesWithoutPrefix() throws IOException{
ClasspathUndoTemplateBasedApplier applier = createApplier("templates/mysql");
assertNotNull(applier.getTemplate("mysql_apply.ftl"));
assertNotNull(applier.getTemplate("mysql_undo.ftl"));
}
@Test
public void checkCanLoadTemplatesWithPrefix() throws IOException{
ClasspathUndoTemplateBasedApplier applier = createApplier("/templates/mysql");
assertNotNull(applier.getTemplate("mysql_apply.ftl"));
assertNotNull(applier.getTemplate("mysql_undo.ftl"));
}
@Test(expected=FileNotFoundException.class)
public void checkErrorsWhenNonExistingTemplate() throws IOException{
ClasspathUndoTemplateBasedApplier applier = createApplier("/templates/mysql");
assertNotNull(applier.getTemplate("nonexistent.ftl"));
}
@Test
public void checkTemplateQualifier() throws IOException{
ClasspathUndoTemplateBasedApplier applier = createApplier("/templates/mysql");
assertEquals("undo", applier.getTemplateQualifier());
}
private ClasspathUndoTemplateBasedApplier createApplier(String templateLocation) throws IOException{
StringWriter writer = new StringWriter();
return new ClasspathUndoTemplateBasedApplier(writer, "mysql", "changelog", templateLocation);
}
}