package org.jabref.model.entry.identifier;
import org.junit.Assert;
import org.junit.Test;
public class EprintTest {
@Test
public void acceptPlainEprint() {
Assert.assertEquals("0706.0001", new Eprint("0706.0001").getEprint());
}
@Test
public void acceptLegacyEprint() {
Assert.assertEquals("astro-ph.GT/1234567", new Eprint("astro-ph.GT/1234567").getEprint());
Assert.assertEquals("math/1234567", new Eprint("math/1234567").getEprint());
}
@Test
public void acceptPlainEprintWithVersion() {
Assert.assertEquals("0706.0001v1", new Eprint("0706.0001v1").getEprint());
}
@Test
public void ignoreLeadingAndTrailingWhitespaces() {
Assert.assertEquals("0706.0001v1", new Eprint(" 0706.0001v1 ").getEprint());
}
@Test(expected = IllegalArgumentException.class)
public void rejectEmbeddedEprint() {
new Eprint("other stuff 0706.0001v1 end");
}
@Test(expected = IllegalArgumentException.class)
public void rejectInvalidEprint() {
new Eprint("https://thisisnouri");
}
@Test
public void acceptArxivPrefix() {
Assert.assertEquals("0706.0001v1", new Eprint("arXiv:0706.0001v1").getEprint());
}
@Test
public void acceptURLEprint() {
// http
Assert.assertEquals("0706.0001v1", new Eprint("http://arxiv.org/abs/0706.0001v1").getEprint());
// https
Assert.assertEquals("0706.0001v1", new Eprint("https://arxiv.org/abs/0706.0001v1").getEprint());
// other domains
Assert.assertEquals("0706.0001v1", new Eprint("https://asdf.org/abs/0706.0001v1").getEprint());
}
@Test
public void constructCorrectURLForEprint() {
Assert.assertEquals("http://arxiv.org/abs/0706.0001v1", new Eprint("0706.0001v1").getURIAsASCIIString());
}
}