package tests.net.sf.jabref.export.layout.format;
import junit.framework.Assert;
import junit.framework.TestCase;
import net.sf.jabref.export.layout.LayoutFormatter;
import net.sf.jabref.export.layout.format.AuthorLastFirstAbbreviator;
/**
* Test case that verifies the functionalities of the
* formater AuthorLastFirstAbbreviator.
*
* @author Carlos Silla
* @author Christopher Oezbek <oezi@oezi.de>
*/
public class AuthorLastFirstAbbreviatorTester extends TestCase {
/**
* Verifies the Abbreviation of one single author with a simple name.
*
* Ex: Lastname, Name
*/
public void testOneAuthorSimpleName() {
String name = "Lastname, Name";
AuthorLastFirstAbbreviator ab = new AuthorLastFirstAbbreviator();
String result = ab.format(name);
//Expected Results:
String expectedResult = "Lastname, N.";
//Verifies the functionality:
Assert.assertEquals("Abbreviator Test", result, expectedResult);
}
/**
* Verifies the Abbreviation of one single author with a common name.
*
* Ex: Lastname, Name Middlename
*/
public void testOneAuthorCommonName() {
String name = "Lastname, Name Middlename";
AuthorLastFirstAbbreviator ab = new AuthorLastFirstAbbreviator();
String result = ab.format(name);
//Expected Results:
String expectedResult = "Lastname, N. M.";
//Verifies the functionality:
Assert.assertEquals("Abbreviator Test", result, expectedResult);
}
/**
* Verifies the Abbreviation of two single with a common name.
*
* Ex: Lastname, Name Middlename
*/
public void testTwoAuthorsCommonName() {
String name = "Lastname, Name Middlename and Sobrenome, Nome Nomedomeio";
AuthorLastFirstAbbreviator ab = new AuthorLastFirstAbbreviator();
String result = ab.format(name);
//Expected Results:
String expectedResult = "Lastname, N. M. and Sobrenome, N. N.";
//Verifies the functionality:
Assert.assertEquals("Abbreviator Test", result, expectedResult);
}
/**
* Testcase for
* http://sourceforge.net/tracker/index.php?func=detail&aid=1466924&group_id=92314&atid=600306
*/
public void testJrAuthor(){
String name = "Other, Jr., Anthony N.";
assertEquals("Other, A. N.", abbreviate(name));
}
public void testFormat() {
LayoutFormatter a = new AuthorLastFirstAbbreviator();
assertEquals("", a.format(""));
assertEquals("Someone, V. S.", a.format("Someone, Van Something"));
assertEquals("Smith, J.", a.format("Smith, John"));
assertEquals("von Neumann, J. and Smith, J. and Black Brown, P.",
a.format("von Neumann, John and Smith, John and Black Brown, Peter"));
}
protected String abbreviate(String name) {
return (new AuthorLastFirstAbbreviator()).format(name);
}
}