package com.bloatit.data;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.util.Iterator;
import org.junit.Test;
import com.bloatit.framework.exceptions.lowlevel.NonOptionalParameterException;
public class DaoVersionedStringTest extends DataTestUnit {
@Test
public final void testDaoVersionedStringStringDaoMember() {
final DaoVersionedString str = DaoVersionedString.createAndPersist("plop", fred);
assertEquals(str.getContent(), "plop");
final DaoVersionedString str1 = DaoVersionedString.createAndPersist("", fred);
assertEquals(str1.getContent(), "");
try {
DaoVersionedString.createAndPersist(null, fred);
fail();
} catch (final NonOptionalParameterException e) {
assertTrue(true);
}
}
@Test
public final void testAddVersion() {
final DaoVersionedString str = DaoVersionedString.createAndPersist("plop", fred);
str.addVersion("plip", tom);
assertEquals(str.getContent(), "plip");
assertEquals(str.getCurrentVersion().getAuthor(), tom);
}
@Test
public final void testChangeCurrentVersion() {
final DaoVersionedString str = DaoVersionedString.createAndPersist("plop", fred);
str.addVersion("plip", tom);
assertEquals(str.getContent(), "plip");
assertEquals(str.getCurrentVersion().getAuthor(), tom);
final DaoStringVersion version = str.getVersions().iterator().next();
str.useVersion(version);
assertEquals(str.getContent(), "plop");
assertEquals(str.getCurrentVersion().getAuthor(), fred);
}
@Test
public final void testCompact() {
final DaoVersionedString str = DaoVersionedString.createAndPersist("plop", fred);
str.addVersion("plop\nplip\n", fred);
str.addVersion("plop\nplup\n", fred);
str.addVersion("plop\nplup\nplop\ncoucou\nHello\n", fred);
str.addVersion("plop\nplup\nplop\ncoucou\n", fred);
str.compact();
Iterator<DaoStringVersion> iterator = str.getVersions().iterator();
assertEquals(iterator.next().getContent(), "plop");
assertEquals(iterator.next().getContentUncompacted("plop"), "plop\nplip\n");
assertEquals(iterator.next().getContentUncompacted("plop\nplip\n"), "plop\nplup\n");
assertEquals(iterator.next().getContentUncompacted("plop\nplup\n"), "plop\nplup\nplop\ncoucou\nHello\n");
assertEquals(iterator.next().getContentUncompacted("plop\nplup\nplop\ncoucou\nHello\n"), "plop\nplup\nplop\ncoucou\n");
iterator = str.getVersions().iterator();
assertFalse(iterator.next().isCompacted());
assertTrue(iterator.next().isCompacted());
assertTrue(iterator.next().isCompacted());
assertTrue(iterator.next().isCompacted());
assertTrue(iterator.next().isCompacted());
}
}