commit
						2dd2ca8f08
					
				| 
						 | 
				
			
			@ -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.
 | 
			
		||||
| 
						 | 
				
			
			@ -29,6 +29,7 @@ import org.springframework.util.StringUtils;
 | 
			
		|||
 * Duration format styles.
 | 
			
		||||
 *
 | 
			
		||||
 * @author Phillip Webb
 | 
			
		||||
 * @author Valentine Wu
 | 
			
		||||
 * @since 2.0.0
 | 
			
		||||
 */
 | 
			
		||||
public enum DurationStyle {
 | 
			
		||||
| 
						 | 
				
			
			@ -62,7 +63,7 @@ public enum DurationStyle {
 | 
			
		|||
	/**
 | 
			
		||||
	 * ISO-8601 formatting.
 | 
			
		||||
	 */
 | 
			
		||||
	ISO8601("^[+-]?P.*$") {
 | 
			
		||||
	ISO8601("^[+-]?[pP].*$") {
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public Duration parse(String value, ChronoUnit unit) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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.
 | 
			
		||||
| 
						 | 
				
			
			@ -28,6 +28,7 @@ import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException
 | 
			
		|||
 * Tests for {@link DurationStyle}.
 | 
			
		||||
 *
 | 
			
		||||
 * @author Phillip Webb
 | 
			
		||||
 * @author Valentine Wu
 | 
			
		||||
 */
 | 
			
		||||
class DurationStyleTests {
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -39,6 +40,7 @@ class DurationStyleTests {
 | 
			
		|||
 | 
			
		||||
	@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"));
 | 
			
		||||
| 
						 | 
				
			
			@ -143,6 +145,7 @@ class DurationStyleTests {
 | 
			
		|||
 | 
			
		||||
	@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);
 | 
			
		||||
| 
						 | 
				
			
			@ -161,6 +164,7 @@ class DurationStyleTests {
 | 
			
		|||
 | 
			
		||||
	@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"));
 | 
			
		||||
| 
						 | 
				
			
			@ -173,6 +177,7 @@ class DurationStyleTests {
 | 
			
		|||
 | 
			
		||||
	@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"));
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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"));
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue