package org.jabref.model.entry;
import java.util.Optional;
import org.junit.Assert;
import org.junit.Test;
public class MonthTest {
@Test
public void parseCorrectlyByShortName() {
Assert.assertEquals(Optional.of(Month.JANUARY), Month.parse("jan"));
Assert.assertEquals(Optional.of(Month.FEBRUARY), Month.parse("feb"));
Assert.assertEquals(Optional.of(Month.MARCH), Month.parse("mar"));
Assert.assertEquals(Optional.of(Month.APRIL), Month.parse("apr"));
Assert.assertEquals(Optional.of(Month.MAY), Month.parse("may"));
Assert.assertEquals(Optional.of(Month.JUNE), Month.parse("jun"));
Assert.assertEquals(Optional.of(Month.JULY), Month.parse("jul"));
Assert.assertEquals(Optional.of(Month.AUGUST), Month.parse("aug"));
Assert.assertEquals(Optional.of(Month.SEPTEMBER), Month.parse("sep"));
Assert.assertEquals(Optional.of(Month.OCTOBER), Month.parse("oct"));
Assert.assertEquals(Optional.of(Month.NOVEMBER), Month.parse("nov"));
Assert.assertEquals(Optional.of(Month.DECEMBER), Month.parse("dec"));
}
@Test
public void parseCorrectlyByBibtexName() {
Assert.assertEquals(Optional.of(Month.JANUARY), Month.parse("#jan#"));
Assert.assertEquals(Optional.of(Month.FEBRUARY), Month.parse("#feb#"));
Assert.assertEquals(Optional.of(Month.MARCH), Month.parse("#mar#"));
Assert.assertEquals(Optional.of(Month.APRIL), Month.parse("#apr#"));
Assert.assertEquals(Optional.of(Month.MAY), Month.parse("#may#"));
Assert.assertEquals(Optional.of(Month.JUNE), Month.parse("#jun#"));
Assert.assertEquals(Optional.of(Month.JULY), Month.parse("#jul#"));
Assert.assertEquals(Optional.of(Month.AUGUST), Month.parse("#aug#"));
Assert.assertEquals(Optional.of(Month.SEPTEMBER), Month.parse("#sep#"));
Assert.assertEquals(Optional.of(Month.OCTOBER), Month.parse("#oct#"));
Assert.assertEquals(Optional.of(Month.NOVEMBER), Month.parse("#nov#"));
Assert.assertEquals(Optional.of(Month.DECEMBER), Month.parse("#dec#"));
}
@Test
public void parseCorrectlyByFullName() {
Assert.assertEquals(Optional.of(Month.JANUARY), Month.parse("January"));
Assert.assertEquals(Optional.of(Month.FEBRUARY), Month.parse("February"));
Assert.assertEquals(Optional.of(Month.MARCH), Month.parse("March"));
Assert.assertEquals(Optional.of(Month.APRIL), Month.parse("April"));
Assert.assertEquals(Optional.of(Month.MAY), Month.parse("May"));
Assert.assertEquals(Optional.of(Month.JUNE), Month.parse("June"));
Assert.assertEquals(Optional.of(Month.JULY), Month.parse("July"));
Assert.assertEquals(Optional.of(Month.AUGUST), Month.parse("August"));
Assert.assertEquals(Optional.of(Month.SEPTEMBER), Month.parse("September"));
Assert.assertEquals(Optional.of(Month.OCTOBER), Month.parse("October"));
Assert.assertEquals(Optional.of(Month.NOVEMBER), Month.parse("November"));
Assert.assertEquals(Optional.of(Month.DECEMBER), Month.parse("December"));
}
@Test
public void parseCorrectlyByTwoDigitNumber() {
Assert.assertEquals(Optional.of(Month.JANUARY), Month.parse("01"));
Assert.assertEquals(Optional.of(Month.FEBRUARY), Month.parse("02"));
Assert.assertEquals(Optional.of(Month.MARCH), Month.parse("03"));
Assert.assertEquals(Optional.of(Month.APRIL), Month.parse("04"));
Assert.assertEquals(Optional.of(Month.MAY), Month.parse("05"));
Assert.assertEquals(Optional.of(Month.JUNE), Month.parse("06"));
Assert.assertEquals(Optional.of(Month.JULY), Month.parse("07"));
Assert.assertEquals(Optional.of(Month.AUGUST), Month.parse("08"));
Assert.assertEquals(Optional.of(Month.SEPTEMBER), Month.parse("09"));
Assert.assertEquals(Optional.of(Month.OCTOBER), Month.parse("10"));
Assert.assertEquals(Optional.of(Month.NOVEMBER), Month.parse("11"));
Assert.assertEquals(Optional.of(Month.DECEMBER), Month.parse("12"));
}
@Test
public void parseCorrectlyByNumber() {
Assert.assertEquals(Optional.of(Month.JANUARY), Month.parse("1"));
Assert.assertEquals(Optional.of(Month.FEBRUARY), Month.parse("2"));
Assert.assertEquals(Optional.of(Month.MARCH), Month.parse("3"));
Assert.assertEquals(Optional.of(Month.APRIL), Month.parse("4"));
Assert.assertEquals(Optional.of(Month.MAY), Month.parse("5"));
Assert.assertEquals(Optional.of(Month.JUNE), Month.parse("6"));
Assert.assertEquals(Optional.of(Month.JULY), Month.parse("7"));
Assert.assertEquals(Optional.of(Month.AUGUST), Month.parse("8"));
Assert.assertEquals(Optional.of(Month.SEPTEMBER), Month.parse("9"));
Assert.assertEquals(Optional.of(Month.OCTOBER), Month.parse("10"));
Assert.assertEquals(Optional.of(Month.NOVEMBER), Month.parse("11"));
Assert.assertEquals(Optional.of(Month.DECEMBER), Month.parse("12"));
}
@Test
public void parseReturnsEmptyOptionalForInvalidInput() {
Assert.assertEquals(Optional.empty(), Month.parse(";lkjasdf"));
Assert.assertEquals(Optional.empty(), Month.parse("3.2"));
Assert.assertEquals(Optional.empty(), Month.parse("#test#"));
Assert.assertEquals(Optional.empty(), Month.parse("8,"));
}
@Test
public void parseReturnsEmptyOptionalForEmptyInput() {
Assert.assertEquals(Optional.empty(), Month.parse(""));
}
}