Skip to content

Commit

Permalink
Merge branch '2.6.x' into 2.7.x
Browse files Browse the repository at this point in the history
Closes gh-32231
  • Loading branch information
wilkinsona committed Sep 5, 2022
2 parents cca5ee8 + b47eb1a commit 2003cfd
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 3 deletions.
@@ -1,5 +1,5 @@
/*
* Copyright 2012-2021 the original author or authors.
* Copyright 2012-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -29,6 +29,7 @@
* Duration format styles.
*
* @author Phillip Webb
* @author Valentine Wu
* @since 2.0.0
*/
public enum DurationStyle {
Expand Down Expand Up @@ -62,7 +63,7 @@ public String print(Duration value, ChronoUnit unit) {
/**
* ISO-8601 formatting.
*/
ISO8601("^[+-]?P.*$") {
ISO8601("^[+-]?[pP].*$") {

@Override
public Duration parse(String value, ChronoUnit unit) {
Expand Down
@@ -1,5 +1,5 @@
/*
* Copyright 2012-2021 the original author or authors.
* Copyright 2012-2022 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -28,6 +28,7 @@
* Tests for {@link DurationStyle}.
*
* @author Phillip Webb
* @author Valentine Wu
*/
class DurationStyleTests {

Expand All @@ -39,6 +40,7 @@ void detectAndParseWhenValueIsNullShouldThrowException() {

@Test
void detectAndParseWhenIso8601ShouldReturnDuration() {
assertThat(DurationStyle.detectAndParse("pt20.345s")).isEqualTo(Duration.parse("pt20.345s"));
assertThat(DurationStyle.detectAndParse("PT20.345S")).isEqualTo(Duration.parse("PT20.345S"));
assertThat(DurationStyle.detectAndParse("PT15M")).isEqualTo(Duration.parse("PT15M"));
assertThat(DurationStyle.detectAndParse("+PT15M")).isEqualTo(Duration.parse("PT15M"));
Expand Down Expand Up @@ -143,6 +145,7 @@ void detectWhenSimpleShouldReturnSimple() {

@Test
void detectWhenIso8601ShouldReturnIso8601() {
assertThat(DurationStyle.detect("pt20.345s")).isEqualTo(DurationStyle.ISO8601);
assertThat(DurationStyle.detect("PT20.345S")).isEqualTo(DurationStyle.ISO8601);
assertThat(DurationStyle.detect("PT15M")).isEqualTo(DurationStyle.ISO8601);
assertThat(DurationStyle.detect("+PT15M")).isEqualTo(DurationStyle.ISO8601);
Expand All @@ -161,6 +164,7 @@ void detectWhenUnknownShouldThrowException() {

@Test
void parseIso8601ShouldParse() {
assertThat(DurationStyle.ISO8601.parse("pt20.345s")).isEqualTo(Duration.parse("pt20.345s"));
assertThat(DurationStyle.ISO8601.parse("PT20.345S")).isEqualTo(Duration.parse("PT20.345S"));
assertThat(DurationStyle.ISO8601.parse("PT15M")).isEqualTo(Duration.parse("PT15M"));
assertThat(DurationStyle.ISO8601.parse("+PT15M")).isEqualTo(Duration.parse("PT15M"));
Expand All @@ -173,6 +177,7 @@ void parseIso8601ShouldParse() {

@Test
void parseIso8601WithUnitShouldIgnoreUnit() {
assertThat(DurationStyle.ISO8601.parse("pt20.345s", ChronoUnit.SECONDS)).isEqualTo(Duration.parse("pt20.345s"));
assertThat(DurationStyle.ISO8601.parse("PT20.345S", ChronoUnit.SECONDS)).isEqualTo(Duration.parse("PT20.345S"));
assertThat(DurationStyle.ISO8601.parse("PT15M", ChronoUnit.SECONDS)).isEqualTo(Duration.parse("PT15M"));
assertThat(DurationStyle.ISO8601.parse("+PT15M", ChronoUnit.SECONDS)).isEqualTo(Duration.parse("PT15M"));
Expand Down
Expand Up @@ -38,6 +38,7 @@ class StringToDurationConverterTests {

@ConversionServiceTest
void convertWhenIso8601ShouldReturnDuration(ConversionService conversionService) {
assertThat(convert(conversionService, "pt20.345s")).isEqualTo(Duration.parse("pt20.345s"));
assertThat(convert(conversionService, "PT20.345S")).isEqualTo(Duration.parse("PT20.345S"));
assertThat(convert(conversionService, "PT15M")).isEqualTo(Duration.parse("PT15M"));
assertThat(convert(conversionService, "+PT15M")).isEqualTo(Duration.parse("PT15M"));
Expand Down

0 comments on commit 2003cfd

Please sign in to comment.