package org.jabref.logic.formatter.bibtexfields;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
/**
* Tests in addition to the general tests from {@link org.jabref.logic.formatter.FormatterTest}
*/
public class RemoveBracesFormatterTest {
private RemoveBracesFormatter formatter;
@Before
public void setUp() {
formatter = new RemoveBracesFormatter();
}
@Test
public void formatRemovesSingleEnclosingBraces() {
assertEquals("test", formatter.format("{test}"));
}
@Test
public void formatKeepsUnmatchedBracesAtBeginning() {
assertEquals("{test", formatter.format("{test"));
}
@Test
public void formatKeepsUnmatchedBracesAtEnd() {
assertEquals("test}", formatter.format("test}"));
}
@Test
public void formatKeepsShortString() {
assertEquals("t", formatter.format("t"));
}
@Test
public void formatKeepsEmptyString() {
assertEquals("", formatter.format(""));
}
@Test
public void formatRemovesDoubleEnclosingBraces() {
assertEquals("test", formatter.format("{{test}}"));
}
@Test
public void formatRemovesTripleEnclosingBraces() {
assertEquals("test", formatter.format("{{{test}}}"));
}
@Test
public void formatKeepsNonMatchingBraces() {
assertEquals("{A} and {B}", formatter.format("{A} and {B}"));
}
@Test
public void formatRemovesOnlyMatchingBraces() {
assertEquals("{A} and {B}", formatter.format("{{A} and {B}}"));
}
@Test
public void formatDoesNotRemoveBracesInBrokenString() {
// We opt here for a conservative approach although one could argue that "A} and {B}" is also a valid return
assertEquals("{A} and {B}}", formatter.format("{A} and {B}}"));
}
@Test
public void formatExample() {
assertEquals("In CDMA", formatter.format(formatter.getExampleInput()));
}
}