package com.dbdeploy;
import com.dbdeploy.scripts.ChangeScript;
import static org.junit.Assert.*;
import org.junit.Test;
import java.util.ArrayList;
import java.util.Arrays;
import com.dbdeploy.PrettyPrinter;
public class PrettyPrinterTest {
PrettyPrinter prettyPrinter = new PrettyPrinter();
@Test
public void shouldDisplayNonRangedNumbersAsSeperateEntities() throws Exception {
assertEquals("1, 3, 5", prettyPrinter.format(Arrays.asList(1L, 3L, 5L)));
}
@Test
public void shouldDisplayARangeAsSuch() throws Exception {
assertEquals("1..5", prettyPrinter.format(Arrays.asList(1L, 2L, 3L, 4L, 5L)));
}
@Test
public void rangesOfTwoAreNotDisplayedAsARange() throws Exception {
assertEquals("1, 2", prettyPrinter.format(Arrays.asList(1L, 2L)));
}
@Test
public void shouldReturnNoneWithAnEmptyList() throws Exception {
assertEquals("(none)", prettyPrinter.format(new ArrayList<Long>()));
}
@Test
public void canDealWithMixtureOfRangesAndNonRanges() throws Exception {
assertEquals("1, 2, 4, 7..10, 12", prettyPrinter.format(Arrays.asList(1L, 2L, 4L, 7L, 8L, 9L, 10L, 12L)));
}
@Test
public void canFormatAChangeScriptList() throws Exception {
ChangeScript change1 = new ChangeScript(1);
ChangeScript change3 = new ChangeScript(3);
assertEquals("1, 3", prettyPrinter.formatChangeScriptList(Arrays.asList(change1, change3)));
}
}