package org.jabref.logic.layout.format;
import org.junit.Assert;
import org.junit.Test;
/**
* Test case that verifies the functionalities of the
* formater AuthorLastFirstAbbreviator.
*
* @author Carlos Silla
* @author Christopher Oezbek <oezi@oezi.de>
*/
public class AuthorLastFirstAbbreviatorTester {
/**
* Verifies the Abbreviation of one single author with a simple name.
* <p/>
* Ex: Lastname, Name
*/
@Test
public void testOneAuthorSimpleName() {
Assert.assertEquals("Abbreviator Test", "Lastname, N.", abbreviate("Lastname, Name"));
}
/**
* Verifies the Abbreviation of one single author with a common name.
* <p/>
* Ex: Lastname, Name Middlename
*/
@Test
public void testOneAuthorCommonName() {
Assert.assertEquals("Abbreviator Test", "Lastname, N. M.", abbreviate("Lastname, Name Middlename"));
}
/**
* Verifies the Abbreviation of two single with a common name.
* <p/>
* Ex: Lastname, Name Middlename
*/
@Test
public void testTwoAuthorsCommonName() {
String result = abbreviate("Lastname, Name Middlename and Sobrenome, Nome Nomedomeio");
String expectedResult = "Lastname, N. M. and Sobrenome, N. N.";
Assert.assertEquals("Abbreviator Test", expectedResult, result);
}
@Test
public void testJrAuthor() {
Assert.assertEquals("Other, Jr., A. N.", abbreviate("Other, Jr., Anthony N."));
}
@Test
public void testFormat() {
Assert.assertEquals("", abbreviate(""));
Assert.assertEquals("Someone, V. S.", abbreviate("Someone, Van Something"));
Assert.assertEquals("Smith, J.", abbreviate("Smith, John"));
Assert.assertEquals("von Neumann, J. and Smith, J. and Black Brown, P.",
abbreviate("von Neumann, John and Smith, John and Black Brown, Peter"));
}
protected String abbreviate(String name) {
return new AuthorLastFirstAbbreviator().format(name);
}
}