mirror of
https://github.com/spring-projects/spring-boot.git
synced 2026-10-07 17:59:02 +00:00
Fix formatting a zero period with a weeks unit
See gh-51892 Signed-off-by: Yingzi Zhang <yingzizhang1205@gmail.com>
This commit is contained in:
committed by
Phillip Webb
parent
9e93588936
commit
b21366db6d
@@ -31,6 +31,7 @@ import org.springframework.util.Assert;
|
||||
*
|
||||
* @author Eddú Meléndez
|
||||
* @author Edson Chávez
|
||||
* @author Yingzi Zhang
|
||||
* @author Valentine Wu
|
||||
* @since 2.3.0
|
||||
* @see Period
|
||||
@@ -85,7 +86,7 @@ public enum PeriodStyle {
|
||||
@Override
|
||||
public String print(Period value, @Nullable ChronoUnit unit) {
|
||||
if (value.isZero()) {
|
||||
return Unit.fromChronoUnit(unit).print(value);
|
||||
return "0" + Unit.fromChronoUnit(unit).suffix;
|
||||
}
|
||||
StringBuilder result = new StringBuilder();
|
||||
append(result, value, Unit.YEARS);
|
||||
|
||||
@@ -29,6 +29,7 @@ import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException
|
||||
*
|
||||
* @author Eddú Meléndez
|
||||
* @author Edson Chávez
|
||||
* @author Yingzi Zhang
|
||||
* @author Valentine Wu
|
||||
*/
|
||||
class PeriodStyleTests {
|
||||
@@ -222,6 +223,11 @@ class PeriodStyleTests {
|
||||
assertThat(PeriodStyle.SIMPLE.print(period, ChronoUnit.YEARS)).isEqualTo("0y");
|
||||
}
|
||||
|
||||
@Test
|
||||
void printSimpleWhenZeroWithWeeksUnitShouldPrintInWeeks() {
|
||||
assertThat(PeriodStyle.SIMPLE.print(Period.ZERO, ChronoUnit.WEEKS)).isEqualTo("0w");
|
||||
}
|
||||
|
||||
@Test
|
||||
void printSimpleWhenNonZeroShouldIgnoreUnit() {
|
||||
Period period = Period.of(1, 2, 3);
|
||||
|
||||
+9
@@ -32,6 +32,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||
*
|
||||
* @author Eddú Melendez
|
||||
* @author Edson Chávez
|
||||
* @author Yingzi Zhang
|
||||
*/
|
||||
class PeriodToStringConverterTests {
|
||||
|
||||
@@ -63,6 +64,14 @@ class PeriodToStringConverterTests {
|
||||
assertThat(converted).isEqualTo("0y");
|
||||
}
|
||||
|
||||
@ConversionServiceTest
|
||||
void convertWithFormatAndWeeksUnitWhenZeroShouldUseFormatAndUnit(ConversionService conversionService) {
|
||||
String converted = (String) conversionService.convert(Period.ZERO,
|
||||
MockPeriodTypeDescriptor.get(ChronoUnit.WEEKS, PeriodStyle.SIMPLE),
|
||||
TypeDescriptor.valueOf(String.class));
|
||||
assertThat(converted).isEqualTo("0w");
|
||||
}
|
||||
|
||||
@ConversionServiceTest
|
||||
void convertWithFormatAndUnitWhenNonZeroShouldUseFormatAndIgnoreUnit(ConversionService conversionService) {
|
||||
String converted = (String) conversionService.convert(Period.of(1, 0, 3),
|
||||
|
||||
Reference in New Issue
Block a user