重构代码;单元测试

This commit is contained in:
2024-08-26 17:36:36 +08:00
parent 43e01e5595
commit 0aaa9331dc
6 changed files with 233 additions and 121 deletions

View File

@@ -1,202 +0,0 @@
package xyz.zhouxy.plusone.commons.base;
import static org.junit.jupiter.api.Assertions.*;
import java.time.Month;
import java.time.MonthDay;
import org.junit.jupiter.api.Test;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public
class QuarterTests {
@Test
void testQ1() {
Quarter quarter = Quarter.of(1);
assertSame(Quarter.Q1, quarter);
assertSame(quarter, Quarter.valueOf("Q1"));
assertEquals(1, quarter.getValue());
assertEquals("Q1", quarter.name());
assertThrows(IllegalArgumentException.class, () -> {
Quarter.of(0);
});
// ==========
int startMonthValue = quarter.firstMonthValue();
log.info("startMonthValue: {}", startMonthValue);
assertEquals(1, startMonthValue);
Month startMonth = quarter.firstMonth();
log.info("startMonth: {}", startMonth);
assertEquals(Month.JANUARY, startMonth);
assertEquals(startMonthValue, startMonth.getValue());
// ==========
int lastMonthValue = quarter.lastMonthValue();
log.info("lastMonthValue: {}", lastMonthValue);
assertEquals(3, lastMonthValue);
Month lastMonth = quarter.lastMonth();
log.info("lastMonth: {}", lastMonth);
assertEquals(Month.MARCH, lastMonth);
assertEquals(lastMonthValue, lastMonth.getValue());
// ==========
MonthDay startMonthDay = quarter.firstMonthDay();
log.info("startMonthDay: {}", startMonthDay);
assertEquals(startMonthDay, MonthDay.of(1, 1));
MonthDay lastMonthDay = quarter.lastMonthDay();
log.info("lastMonthDay: {}", lastMonthDay);
assertEquals(lastMonthDay, MonthDay.of(3, 31));
}
@Test
void testQ2() {
Quarter quarter = Quarter.of(2);
assertSame(Quarter.Q2, quarter);
assertSame(quarter, Quarter.valueOf("Q2"));
assertEquals(2, quarter.getValue());
assertEquals("Q2", quarter.name());
assertThrows(IllegalArgumentException.class, () -> {
Quarter.of(5);
});
// ==========
int startMonthValue = quarter.firstMonthValue();
log.info("startMonthValue: {}", startMonthValue);
assertEquals(4, startMonthValue);
Month startMonth = quarter.firstMonth();
log.info("startMonth: {}", startMonth);
assertEquals(Month.APRIL, startMonth);
assertEquals(startMonthValue, startMonth.getValue());
// ==========
int lastMonthValue = quarter.lastMonthValue();
log.info("lastMonthValue: {}", lastMonthValue);
assertEquals(6, lastMonthValue);
Month lastMonth = quarter.lastMonth();
log.info("lastMonth: {}", lastMonth);
assertEquals(Month.JUNE, lastMonth);
assertEquals(lastMonthValue, lastMonth.getValue());
// ==========
MonthDay startMonthDay = quarter.firstMonthDay();
log.info("startMonthDay: {}", startMonthDay);
assertEquals(startMonthDay, MonthDay.of(4, 1));
MonthDay lastMonthDay = quarter.lastMonthDay();
log.info("lastMonthDay: {}", lastMonthDay);
assertEquals(lastMonthDay, MonthDay.of(6, 30));
}
@Test
void testQ3() {
Quarter quarter = Quarter.of(3);
assertSame(Quarter.Q3, quarter);
assertSame(quarter, Quarter.valueOf("Q3"));
assertEquals(3, quarter.getValue());
assertEquals("Q3", quarter.name());
assertThrows(IllegalArgumentException.class, () -> {
Quarter.valueOf("Abc");
});
// ==========
int startMonthValue = quarter.firstMonthValue();
log.info("startMonthValue: {}", startMonthValue);
assertEquals(7, startMonthValue);
Month startMonth = quarter.firstMonth();
log.info("startMonth: {}", startMonth);
assertEquals(Month.JULY, startMonth);
assertEquals(startMonthValue, startMonth.getValue());
// ==========
int lastMonthValue = quarter.lastMonthValue();
log.info("lastMonthValue: {}", lastMonthValue);
assertEquals(9, lastMonthValue);
Month lastMonth = quarter.lastMonth();
log.info("lastMonth: {}", lastMonth);
assertEquals(Month.SEPTEMBER, lastMonth);
assertEquals(lastMonthValue, lastMonth.getValue());
// ==========
MonthDay startMonthDay = quarter.firstMonthDay();
log.info("startMonthDay: {}", startMonthDay);
assertEquals(startMonthDay, MonthDay.of(7, 1));
MonthDay lastMonthDay = quarter.lastMonthDay();
log.info("lastMonthDay: {}", lastMonthDay);
assertEquals(lastMonthDay, MonthDay.of(9, 30));
}
@Test
void testQ4() {
Quarter quarter = Quarter.of(4);
assertSame(Quarter.Q4, quarter);
assertSame(quarter, Quarter.valueOf("Q4"));
assertEquals(4, quarter.getValue());
assertEquals("Q4", quarter.name());
assertThrows(IllegalArgumentException.class, () -> {
Quarter.valueOf("Q5");
});
// ==========
int startMonthValue = quarter.firstMonthValue();
log.info("startMonthValue: {}", startMonthValue);
assertEquals(10, startMonthValue);
Month startMonth = quarter.firstMonth();
log.info("startMonth: {}", startMonth);
assertEquals(Month.OCTOBER, startMonth);
assertEquals(startMonthValue, startMonth.getValue());
// ==========
int lastMonthValue = quarter.lastMonthValue();
log.info("lastMonthValue: {}", lastMonthValue);
assertEquals(12, lastMonthValue);
Month lastMonth = quarter.lastMonth();
log.info("lastMonth: {}", lastMonth);
assertEquals(Month.DECEMBER, lastMonth);
assertEquals(lastMonthValue, lastMonth.getValue());
// ==========
MonthDay startMonthDay = quarter.firstMonthDay();
log.info("startMonthDay: {}", startMonthDay);
assertEquals(startMonthDay, MonthDay.of(10, 1));
MonthDay lastMonthDay = quarter.lastMonthDay();
log.info("lastMonthDay: {}", lastMonthDay);
assertEquals(lastMonthDay, MonthDay.of(12, 31));
}
}

View File

@@ -1,55 +0,0 @@
package xyz.zhouxy.plusone.commons.base;
import org.junit.jupiter.api.Test;
import lombok.extern.slf4j.Slf4j;
import java.time.LocalDate;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
@Slf4j
public class YearQuarterTests {
@Test
void of_ValidYearAndQuarter_CreatesYearQuarter() {
int year = 2023;
Quarter quarter = Quarter.Q1;
YearQuarter expected = YearQuarter.of(year, quarter);
YearQuarter actual = YearQuarter.of(LocalDate.of(year, 2, 28));
assertEquals(expected, actual);
assertEquals("Q1 2023", actual.toString());
}
@Test
@SuppressWarnings("null")
void of_InvalidQuarter_ThrowsNullPointerException() {
int year = 2023;
Quarter quarter = null;
assertThrows(NullPointerException.class, () -> YearQuarter.of(year, quarter));
}
@Test
void of_ValidYearQuarter_GetsCorrectStartAndEndDate() {
for (int year = 1990; year <= 2024; year++) {
for (int qrtr = 1; qrtr <= 4; qrtr++) {
Quarter quarter = Quarter.of(qrtr);
YearQuarter yearQuarter = YearQuarter.of(year, quarter);
LocalDate expectedStartDate = quarter.firstMonthDay().atYear(year);
log.info("{} - expectedStartDate: {}", yearQuarter, expectedStartDate);
LocalDate expectedEndDate = quarter.lastMonthDay().atYear(year);
log.info("{} - expectedEndDate: {}", yearQuarter, expectedEndDate);
assertEquals(expectedStartDate, yearQuarter.firstDate());
assertEquals(expectedEndDate, yearQuarter.lastDate());
}
}
}
}