BAEL-6489 Time Conversions Using TimeUnit (#14390)
This commit is contained in:
parent
8c2c788b0d
commit
9e995c1e41
|
@ -0,0 +1,105 @@
|
|||
package com.baeldung.timeunitconversions;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
class TimeUnitConversionsUnitTest {
|
||||
|
||||
|
||||
@Test
|
||||
void givenSeconds_whenConvertToMinutes_thenCorrect() {
|
||||
int input = 60;
|
||||
|
||||
long minutes = TimeUnit.MINUTES.convert(input, TimeUnit.SECONDS);
|
||||
|
||||
assertThat(minutes).isEqualTo(1);
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenMinutes_whenConvertToSeconds_thenCorrect() {
|
||||
int input = 1;
|
||||
|
||||
long seconds = TimeUnit.SECONDS.convert(input, TimeUnit.MINUTES);
|
||||
|
||||
assertThat(seconds).isEqualTo(60);
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenSeconds_whenToMinutes_thenCorrect() {
|
||||
int input = 60;
|
||||
|
||||
long minutes = TimeUnit.SECONDS.toMinutes(input);
|
||||
|
||||
assertThat(minutes).isEqualTo(1);
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenMinutes_whenToSeconds_thenCorrect() {
|
||||
int input = 1;
|
||||
|
||||
long seconds = TimeUnit.MINUTES.toSeconds(input);
|
||||
|
||||
assertThat(seconds).isEqualTo(60);
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenNegativeInput_whenToMinutes_thenCorrect() {
|
||||
int input = -60;
|
||||
|
||||
long minutes = TimeUnit.SECONDS.toMinutes(input);
|
||||
assertThat(minutes).isEqualTo(-1);
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenNonTotalInput_whenToMinutes_thenCorrectTotalResultWithDecimalTruncate() {
|
||||
long positiveUnder = TimeUnit.SECONDS.toMinutes(59);
|
||||
long positiveAbove = TimeUnit.SECONDS.toMinutes(61);
|
||||
|
||||
assertThat(positiveUnder).isEqualTo(0);
|
||||
assertThat(positiveAbove).isEqualTo(1);
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenNonTotalNegativeInput_whenToMinutes_thenCorrectTotalResultWithDecimalTruncate() {
|
||||
long negativeUnder = TimeUnit.SECONDS.toMinutes(-59);
|
||||
long negativeAbove = TimeUnit.SECONDS.toMinutes(-61);
|
||||
|
||||
assertThat(negativeUnder).isEqualTo(0);
|
||||
assertThat(negativeAbove).isEqualTo(-1);
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenOverflowInput_whenToMillis_thenTruncatedToLimit() {
|
||||
long maxMillis = TimeUnit.DAYS.toMillis(Long.MAX_VALUE);
|
||||
long minMillis = TimeUnit.DAYS.toMillis(Long.MIN_VALUE);
|
||||
|
||||
assertThat(maxMillis).isEqualTo(Long.MAX_VALUE);
|
||||
assertThat(minMillis).isEqualTo(Long.MIN_VALUE);
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenInput_whenExtractFineTimeUnits_thenCorrect() {
|
||||
long inputSeconds = 3672;
|
||||
|
||||
long hours = TimeUnit.SECONDS.toHours(inputSeconds);
|
||||
|
||||
long secondsRemainingAfterHours = inputSeconds - TimeUnit.HOURS.toSeconds(hours);
|
||||
long minutes = TimeUnit.SECONDS.toMinutes(secondsRemainingAfterHours);
|
||||
|
||||
long seconds = secondsRemainingAfterHours - TimeUnit.MINUTES.toSeconds(minutes);
|
||||
|
||||
|
||||
assertThat(hours).isEqualTo(1);
|
||||
assertThat(minutes).isEqualTo(1);
|
||||
assertThat(seconds).isEqualTo(12);
|
||||
|
||||
assertThat(inputSeconds).isEqualTo(
|
||||
(hours * 60 * 60) +
|
||||
(minutes * 60) +
|
||||
(seconds)
|
||||
);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue