package rmblworx.tools.timey.gui;
import static org.junit.Assert.assertEquals;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import org.junit.Test;
/*
* Copyright 2014-2015 Christian Raue
* MIT License http://opensource.org/licenses/mit-license.php
*/
/**
* Test für Hilfsmethoden zum Umgang mit Datum/Zeit-Werten.
* @author Christian Raue {@literal <christian.raue@gmail.com>}
*/
public class DateTimeUtilTest {
/**
* Testet {@link DateTimeUtil#getDatePart(LocalDateTime)}.
*/
@Test
public final void testGetDatePart() {
for (final DateTimePartsValue testCase : getDateTimeParts()) {
assertEquals(DateTimeUtil.getLocalDateForString(testCase.date),
DateTimeUtil.getDatePart(DateTimeUtil.getLocalDateTimeForString(testCase.dateTime)));
}
}
/**
* Testet {@link DateTimeUtil#getTimePart(LocalDateTime)}.
*/
@Test
public final void testGetTimePart() {
for (final DateTimePartsValue testCase : getDateTimeParts()) {
assertEquals(DateTimeUtil.getLocalTimeForString(testCase.time),
DateTimeUtil.getTimePart(DateTimeUtil.getLocalDateTimeForString(testCase.dateTime)));
}
}
/**
* Testet {@link DateTimeUtil#getLocalDateTimeForString(String)}.
*/
@Test
public final void testGetLocalDateTimeForString() {
final String[] strings = new String[] {
"01.01.1970 00:00:00",
};
for (final String string : strings) {
assertEquals(String.format("Failed parsing and evaluating date/time string '%s'.", string),
LocalDateTime.of(1970, 1, 1, 0, 0, 0), DateTimeUtil.getLocalDateTimeForString(string));
}
}
/**
* Testet {@link DateTimeUtil#getLocalDateForString(String)}.
*/
@Test
public final void testGetLocalDateForString() {
final String[] strings = new String[] {
"01.01.1970",
};
for (final String string : strings) {
assertEquals(String.format("Failed parsing and evaluating date string '%s'.", string),
LocalDate.ofEpochDay(0), DateTimeUtil.getLocalDateForString(string));
}
}
/**
* Testet {@link DateTimeUtil#getLocalTimeForString(String)}.
*/
@Test
public final void testGetLocalTimeForString() {
final String[] strings = new String[] {
"00:00:00",
};
for (final String string : strings) {
assertEquals(String.format("Failed parsing and evaluating time string '%s'.", string),
LocalTime.ofNanoOfDay(0), DateTimeUtil.getLocalTimeForString(string));
}
}
/**
* Testet {@link DateTimeUtil#getLocalDateTimeInMillis(LocalDateTime)}.
*/
@Test
public final void testGetLocalDateTimeInMillis() {
assertEquals(0L, DateTimeUtil.getLocalDateTimeInMillis(DateTimeUtil.getLocalDateTimeForString("01.01.1970 00:00:00")));
assertEquals(1419424496000L, DateTimeUtil.getLocalDateTimeInMillis(DateTimeUtil.getLocalDateTimeForString("24.12.2014 12:34:56")));
}
/**
* Testet {@link DateTimeUtil#getLocalDateTimeFromMillis(long)}.
*/
@Test
public final void testGetLocalDateTimeFromMillis() {
assertEquals(DateTimeUtil.getLocalDateTimeForString("01.01.1970 00:00:00"), DateTimeUtil.getLocalDateTimeFromMillis(0L));
assertEquals(DateTimeUtil.getLocalDateTimeForString("24.12.2014 12:34:56"), DateTimeUtil.getLocalDateTimeFromMillis(1419424496000L));
}
/**
* @return Testfälle
*/
private DateTimePartsValue[] getDateTimeParts() {
return new DateTimePartsValue[] {
new DateTimePartsValue("24.12.2014", "12:00:00"), // Zeitpunkt in Zeitzone "CET"
new DateTimePartsValue("04.04.2014", "12:00:00"), // Zeitpunkt in Zeitzone "CEST"
};
}
private final class DateTimePartsValue {
public final String date;
public final String time;
public final String dateTime;
public DateTimePartsValue(final String date, final String time) {
this.date = date;
this.time = time;
this.dateTime = String.format("%s %s", date, time);
}
}
}