package org.jabref.logic.layout.format;
import org.jabref.logic.layout.ParamLayoutFormatter;
import org.junit.Assert;
import org.junit.Test;
public class AuthorsTest {
@Test
public void testStandardUsage() {
ParamLayoutFormatter a = new Authors();
Assert.assertEquals("B. C. Bruce, C. Manson and J. Jumper",
a.format("Bob Croydon Bruce and Charles Manson and Jolly Jumper"));
}
@Test
public void testStandardUsageOne() {
ParamLayoutFormatter a = new Authors();
a.setArgument("fullname, LastFirst, Comma, Comma");
Assert.assertEquals("Bruce, Bob Croydon, Jumper, Jolly", a.format("Bob Croydon Bruce and Jolly Jumper"));
}
@Test
public void testStandardUsageTwo() {
ParamLayoutFormatter a = new Authors();
a.setArgument("initials");
Assert.assertEquals("B. C. Bruce and J. Jumper", a.format("Bob Croydon Bruce and Jolly Jumper"));
}
@Test
public void testStandardUsageThree() {
ParamLayoutFormatter a = new Authors();
a.setArgument("fullname, LastFirst, Comma");
Assert.assertEquals("Bruce, Bob Croydon, Manson, Charles and Jumper, Jolly",
a.format("Bob Croydon Bruce and Charles Manson and Jolly Jumper"));
}
@Test
public void testStandardUsageFour() {
ParamLayoutFormatter a = new Authors();
a.setArgument("fullname, LastFirst, Comma, 2");
Assert.assertEquals("Bruce, Bob Croydon et al.",
a.format("Bob Croydon Bruce and Charles Manson and Jolly Jumper"));
}
@Test
public void testStandardUsageFive() {
ParamLayoutFormatter a = new Authors();
a.setArgument("fullname, LastFirst, Comma, 3");
Assert.assertEquals("Bruce, Bob Croydon et al.",
a.format("Bob Croydon Bruce and Charles Manson and Jolly Jumper and Chuck Chuckles"));
}
@Test
public void testStandardUsageSix() {
ParamLayoutFormatter a = new Authors();
a.setArgument("fullname, LastFirst, Comma, 3, 2");
Assert.assertEquals("Bruce, Bob Croydon, Manson, Charles et al.",
a.format("Bob Croydon Bruce and Charles Manson and Jolly Jumper and Chuck Chuckles"));
}
@Test
public void testSpecialEtAl() {
ParamLayoutFormatter a = new Authors();
a.setArgument("fullname, LastFirst, Comma, 3, etal= and a few more");
Assert.assertEquals("Bruce, Bob Croydon and a few more",
a.format("Bob Croydon Bruce and Charles Manson and Jolly Jumper and Chuck Chuckles"));
}
@Test
public void testStandardUsageNull() {
ParamLayoutFormatter a = new Authors();
Assert.assertEquals("", a.format(null));
}
@Test
public void testStandardOxford() {
ParamLayoutFormatter a = new Authors();
a.setArgument("Oxford");
Assert.assertEquals("B. C. Bruce, C. Manson, and J. Jumper",
a.format("Bob Croydon Bruce and Charles Manson and Jolly Jumper"));
}
@Test
public void testStandardOxfordFullName() {
ParamLayoutFormatter a = new Authors();
a.setArgument("FullName,Oxford");
Assert.assertEquals("Bob Croydon Bruce, Charles Manson, and Jolly Jumper",
a.format("Bruce, Bob Croydon and Charles Manson and Jolly Jumper"));
}
@Test
public void testStandardCommaFullName() {
ParamLayoutFormatter a = new Authors();
a.setArgument("FullName,Comma,Comma");
Assert.assertEquals("Bob Croydon Bruce, Charles Manson, Jolly Jumper",
a.format("Bruce, Bob Croydon and Charles Manson and Jolly Jumper"));
}
@Test
public void testStandardAmpFullName() {
ParamLayoutFormatter a = new Authors();
a.setArgument("FullName,Amp");
Assert.assertEquals("Bob Croydon Bruce, Charles Manson & Jolly Jumper",
a.format("Bruce, Bob Croydon and Charles Manson and Jolly Jumper"));
}
@Test
public void testLastName() {
ParamLayoutFormatter a = new Authors();
a.setArgument("LastName");
Assert.assertEquals("Bruce, von Manson and Jumper",
a.format("Bruce, Bob Croydon and Charles von Manson and Jolly Jumper"));
}
@Test
public void testMiddleInitial() {
ParamLayoutFormatter a = new Authors();
a.setArgument("MiddleInitial");
Assert.assertEquals("Bob C. Bruce, Charles K. von Manson and Jolly Jumper",
a.format("Bruce, Bob Croydon and Charles Kermit von Manson and Jumper, Jolly"));
}
@Test
public void testNoPeriod() {
ParamLayoutFormatter a = new Authors();
a.setArgument("NoPeriod");
Assert.assertEquals("B C Bruce, C K von Manson and J Jumper",
a.format("Bruce, Bob Croydon and Charles Kermit von Manson and Jumper, Jolly"));
}
@Test
public void testEtAl() {
ParamLayoutFormatter a = new Authors();
a.setArgument("2,1");
Assert.assertEquals("B. C. Bruce et al.",
a.format("Bruce, Bob Croydon and Charles Kermit von Manson and Jumper, Jolly"));
}
@Test
public void testEtAlNotEnoughAuthors() {
ParamLayoutFormatter a = new Authors();
a.setArgument("2,1");
Assert.assertEquals("B. C. Bruce and C. K. von Manson",
a.format("Bruce, Bob Croydon and Charles Kermit von Manson"));
}
@Test
public void testEmptyEtAl() {
ParamLayoutFormatter a = new Authors();
a.setArgument("fullname, LastFirst, Comma, 3, etal=");
Assert.assertEquals("Bruce, Bob Croydon",
a.format("Bob Croydon Bruce and Charles Manson and Jolly Jumper and Chuck Chuckles"));
}
}