package org.jabref.logic.formatter.casechanger;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
/**
* Tests in addition to the general tests from {@link org.jabref.logic.formatter.FormatterTest}
*/
public class TitleCaseFormatterTest {
private TitleCaseFormatter formatter;
@Before
public void setUp() {
formatter = new TitleCaseFormatter();
}
@Test
public void eachFirstLetterIsUppercased() {
Assert.assertEquals("Upper Each First", formatter.format("upper each first"));
}
@Test
public void eachFirstLetterIsUppercasedAndOthersLowercased() {
Assert.assertEquals("Upper Each First", formatter.format("upper eACH first"));
}
@Test
public void eachFirstLetterIsUppercasedAndATralingAndIsAlsoUppercased() {
Assert.assertEquals("An Upper Each First And", formatter.format("an upper each first and"));
}
@Test
public void eachFirstLetterIsUppercasedAndATralingAndIsAlsoCorrectlyCased() {
Assert.assertEquals("An Upper Each First And", formatter.format("an upper each first AND"));
}
@Test
public void eachFirstLetterIsUppercasedButIntermediateAndsAreKeptLowercase(){
Assert.assertEquals("An Upper Each of the and First And",
formatter.format("an upper each of the and first and"));
}
@Test
public void eachFirstLetterIsUppercasedButIntermediateAndsArePutLowercase(){
Assert.assertEquals("An Upper Each of the and First And",
formatter.format("an upper each of the AND first and"));
}
@Test
public void theAfterColonGetsCapitalized() {
Assert.assertEquals("An Upper Each of: The and First And",
formatter.format("an upper each of: the and first and"));
}
@Test
public void completeWordsInCurlyBracketsIsLeftUnchanged() {
Assert.assertEquals("An Upper First with and without {CURLY} {brackets}",
formatter.format("AN UPPER FIRST WITH AND WITHOUT {CURLY} {brackets}"));
}
@Test
public void lettersInCurlyBracketsIsLeftUnchanged() {
Assert.assertEquals("An Upper First with {A}nd without {C}urly {b}rackets",
formatter.format("AN UPPER FIRST WITH {A}ND WITHOUT {C}URLY {b}rackets"));
}
@Test
public void intraWordLettersInCurlyBracketsIsLeftUnchanged() {
Assert.assertEquals("{b}rackets {b}rac{K}ets Brack{E}ts",
formatter.format("{b}RaCKeTS {b}RaC{K}eTS bRaCK{E}ts"));
}
@Test
public void testTwoExperiencesTitle() {
Assert.assertEquals(
"Two Experiences Designing for Effective Security",
formatter.format("Two experiences designing for effective security"));
}
@Test
public void formatExample() {
Assert.assertEquals("{BPMN} Conformance in Open Source Engines", formatter.format(formatter.getExampleInput()));
}
}