Skip to content

Commit

Permalink
Fix NullableDate (#360)
Browse files Browse the repository at this point in the history
  • Loading branch information
Katsute committed Jan 13, 2023
1 parent 7856fe6 commit bf3dcd6
Show file tree
Hide file tree
Showing 6 changed files with 97 additions and 7 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>dev.katsute</groupId>
<artifactId>mal4j</artifactId>
<version>3.0.0</version>
<version>3.0.1</version>

<profiles>
<profile>
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/dev/katsute/mal4j/MyAnimeListSchema.java
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,9 @@ protected static NullableDate parseNullableDate(final String date){
}
});

private final Integer year = requireNonNull(() -> Integer.valueOf(parts[0]));
private final Integer month = requireNonNull(() -> Integer.valueOf(parts[1]));
private final Integer day = requireNonNull(() -> Integer.valueOf(parts[2]));
private final Integer year = requireNonNull(() -> parts.length < 1 ? null : Integer.valueOf(parts[0]));
private final Integer month = requireNonNull(() -> parts.length < 2 ? null : Integer.valueOf(parts[1]));
private final Integer day = requireNonNull(() -> parts.length < 3 ? null : Integer.valueOf(parts[2]));

@Override
public final Integer getYear(){
Expand Down
90 changes: 90 additions & 0 deletions src/test/java/dev/katsute/mal4j/TestDateTime.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
package dev.katsute.mal4j;

import dev.katsute.mal4j.anime.property.time.Time;
import dev.katsute.mal4j.property.NullableDate;
import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.*;

final class TestDateTime {

@Test
final void testDate(){
assertNotNull(MyAnimeListSchema.parseDate("2020-03-14"));
assertNotNull(MyAnimeListSchema.parseDate("2020-03"));
assertNotNull(MyAnimeListSchema.parseDate("2020"));
assertNull(MyAnimeListSchema.parseDate("-"));
assertNull(MyAnimeListSchema.parseDate(""));
assertNull(MyAnimeListSchema.parseDate(null));
}

@Test
final void testNullableDateYMD(){
final NullableDate date = MyAnimeListSchema.parseNullableDate("2020-03-14");
assertEquals(2020, date.getYear());
assertEquals(3, date.getMonth());
assertEquals(14, date.getDay());
assertNotNull(date.getMillis());
assertNotNull(date.getDate());
}

@Test
final void testNullableDateYM(){
final NullableDate date = MyAnimeListSchema.parseNullableDate("2020-03");
assertEquals(2020, date.getYear());
assertEquals(3, date.getMonth());
assertNull(date.getDay());
assertNotNull(date.getMillis());
assertNotNull(date.getDate());
}

@Test
final void testNullableDateY(){
final NullableDate date = MyAnimeListSchema.parseNullableDate("2020");
assertEquals(2020, date.getYear());
assertNull(date.getMonth());
assertNull(date.getDay());
assertNotNull(date.getMillis());
assertNotNull(date.getDate());
}

@Test
final void testNullableDateNull(){
assertNull(MyAnimeListSchema.parseDate("-"));
assertNull(MyAnimeListSchema.parseDate(""));
assertNull(MyAnimeListSchema.parseDate(null));
}

@Test
final void testYMD(){
assertEquals("2020-03-14", MyAnimeListSchema.asYMD(1584158400000L));
assertNull(MyAnimeListSchema.asYMD(null));
}

@Test
final void testISO(){
assertEquals(1584144000000L, MyAnimeListSchema.parseISO8601("2020-03-14T00:00:00+00:00"));
assertNull(MyAnimeListSchema.parseISO8601(null));
}

@Test
final void testTimeAM(){
final Time time = MyAnimeListSchema.asTime("01:23");
assertEquals(1, time.get12Hour());
assertEquals(1, time.getHour());
assertEquals(23, time.getMinute());
assertTrue(time.isAM());
assertFalse(time.isPM());
}

@Test
final void testTimePM(){
final Time time = MyAnimeListSchema.asTime("14:56");
assertEquals(2, time.get12Hour());
assertEquals(14, time.getHour());
assertEquals(56, time.getMinute());
assertFalse(time.isAM());
assertTrue(time.isPM());
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import org.junit.jupiter.api.*;

@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
public class TestExperimentalEnabler {
final class TestExperimentalEnabler {

private static MyAnimeList mal;

Expand Down
2 changes: 1 addition & 1 deletion src/test/java/dev/katsute/mal4j/TestJson.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
import static org.junit.jupiter.api.Assertions.*;

@SuppressWarnings("SpellCheckingInspection")
public class TestJson {
final class TestJson {

private static JsonObject jsonObject;
private static List<?> jsonArray;
Expand Down
2 changes: 1 addition & 1 deletion src/test/java/dev/katsute/mal4j/TestREADME.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

// this tests only that code compiles
@SuppressWarnings("unused")
public class TestREADME {
abstract class TestREADME {

public void testSearchQueries(){
MyAnimeList mal = MyAnimeList.withClientID("");
Expand Down

0 comments on commit bf3dcd6

Please sign in to comment.