ISIS-1480: uses dateHourMinuteSecondMillis for JodaLocalDateTimeValueSemanticsProvider's encoding/restore
Project: http://git-wip-us.apache.org/repos/asf/isis/repo Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/5df58cbd Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/5df58cbd Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/5df58cbd Branch: refs/heads/master Commit: 5df58cbd37c8f2f87caf9cad47fa3104b3e03201 Parents: d038b2d Author: Dan Haywood <d...@haywood-associates.co.uk> Authored: Wed Oct 26 15:32:09 2016 +0100 Committer: Dan Haywood <d...@haywood-associates.co.uk> Committed: Wed Oct 26 15:39:47 2016 +0100 ---------------------------------------------------------------------- ...JodaLocalDateTimeValueSemanticsProvider.java | 2 +- ...LocalDateTimeValueSemanticsProviderTest.java | 63 ++++++++++++++++++++ 2 files changed, 64 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/isis/blob/5df58cbd/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejodalocal/JodaLocalDateTimeValueSemanticsProvider.java ---------------------------------------------------------------------- diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejodalocal/JodaLocalDateTimeValueSemanticsProvider.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejodalocal/JodaLocalDateTimeValueSemanticsProvider.java index 439a224..3003633 100644 --- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejodalocal/JodaLocalDateTimeValueSemanticsProvider.java +++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/value/datetimejodalocal/JodaLocalDateTimeValueSemanticsProvider.java @@ -126,7 +126,7 @@ public class JodaLocalDateTimeValueSemanticsProvider extends ValueSemanticsProvi private static final LocalDateTime DEFAULT_VALUE = null; - private final DateTimeFormatter encodingFormatter = ISODateTimeFormat.dateHourMinuteSecond(); + private final DateTimeFormatter encodingFormatter = ISODateTimeFormat.dateHourMinuteSecondMillis(); private DateTimeFormatter titleStringFormatter; private String titleStringFormatNameOrPattern; http://git-wip-us.apache.org/repos/asf/isis/blob/5df58cbd/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/datetimejodalocal/JodaLocalDateTimeValueSemanticsProviderTest.java ---------------------------------------------------------------------- diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/datetimejodalocal/JodaLocalDateTimeValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/datetimejodalocal/JodaLocalDateTimeValueSemanticsProviderTest.java new file mode 100644 index 0000000..8354a02 --- /dev/null +++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/datetimejodalocal/JodaLocalDateTimeValueSemanticsProviderTest.java @@ -0,0 +1,63 @@ +package org.apache.isis.core.metamodel.facets.value.datetimejodalocal; + +import org.jmock.Expectations; +import org.jmock.auto.Mock; +import org.joda.time.LocalDateTime; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; + +import org.apache.isis.core.commons.config.IsisConfigurationDefault; +import org.apache.isis.core.metamodel.facetapi.FacetHolder; +import org.apache.isis.core.metamodel.services.ServicesInjector; +import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2; + +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; + +public class JodaLocalDateTimeValueSemanticsProviderTest { + + @Rule + public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(JUnitRuleMockery2.Mode.INTERFACES_AND_CLASSES); + + @Mock + FacetHolder mockFacetHolder; + + @Mock + ServicesInjector mockServicesInjector; + + @Mock + IsisConfigurationDefault mockConfiguration; + + JodaLocalDateTimeValueSemanticsProvider provider; + + @Before + public void setUp() throws Exception { + context.checking(new Expectations() {{ + + ignoring(mockFacetHolder); + + allowing(mockServicesInjector).getConfigurationServiceInternal(); + will(returnValue(mockConfiguration)); + + allowing(mockConfiguration).getString("isis.value.format.datetime","medium"); + will(returnValue("iso_encoding")); + }}); + + provider = new JodaLocalDateTimeValueSemanticsProvider(mockFacetHolder, mockServicesInjector); + + } + + @Test + public void roundtrip() throws Exception { + + final LocalDateTime t0 = LocalDateTime.now(); + + final String encoded = provider.doEncode(t0); + final LocalDateTime t1 = provider.doRestore(encoded); + + assertThat(t0, is(equalTo(t1))); + } + +} \ No newline at end of file