/*
* Copyright 2004-2015 the Seasar Foundation and the Others.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the specific language
* governing permissions and limitations under the License.
*/
package org.seasar.extension.jdbc.gen.internal.version;
import java.io.File;
import java.util.Collections;
import org.junit.Before;
import org.junit.Test;
import org.seasar.extension.jdbc.gen.internal.dialect.StandardGenDialect;
import org.seasar.extension.jdbc.gen.internal.event.GenDdlListenerImpl;
import org.seasar.extension.jdbc.gen.version.DdlVersionDirectory;
import org.seasar.extension.jdbc.gen.version.DdlVersionIncrementer;
import org.seasar.framework.mock.sql.MockDataSource;
import org.seasar.framework.util.ResourceUtil;
import static org.junit.Assert.*;
/**
* @author taedium
*
*/
public class DdlVersionIncrementerImplTest {
private DdlVersionIncrementerImpl incrementer;
private File baseDir;
/**
*
*/
@Before
public void setUp() {
String path = getClass().getPackage().getName().replace('.', '/')
+ "/migrate";
baseDir = ResourceUtil.getResourceAsFile(path);
File versionFile = new File(baseDir, "ddl-version.txt");
DdlVersionDirectoryTreeImpl directory = new DdlVersionDirectoryTreeImpl(
baseDir, versionFile, "v000", null);
incrementer = new DdlVersionIncrementerImpl(directory,
new GenDdlListenerImpl(), new StandardGenDialect(),
new MockDataSource(), Collections.<String> emptyList(),
Collections.<String> emptyList()) {
@Override
protected void makeDirectory(DdlVersionDirectory versionDir) {
}
@Override
protected void copyDirectory(DdlVersionDirectory current,
DdlVersionDirectory next) {
}
@Override
protected void copyDropDirectory(DdlVersionDirectory current,
DdlVersionDirectory next) {
}
@Override
protected void incrementVersionNo(String changeLog) {
}
};
}
/**
*
* @throws Exception
*/
@Test
public void testIncrement() throws Exception {
final Object[] values = new Object[3];
incrementer.increment("changeLog",
new DdlVersionIncrementer.Callback() {
public void execute(DdlVersionDirectory versionDirectory) {
values[0] = versionDirectory.getCreateDirectory()
.asFile();
values[1] = versionDirectory.getDropDirectory()
.asFile();
values[2] = versionDirectory.getVersionNo();
}
});
File v012 = new File(baseDir, "v012");
assertEquals(new File(v012, "create"), values[0]);
assertEquals(new File(v012, "drop"), values[1]);
assertEquals(new Integer(12), values[2]);
}
}