You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2016/10/26 15:08:57 UTC

[4/4] isis git commit: ISIS-1480: uses dateHourMinuteSecondMillis for JodaLocalDateTimeValueSemanticsProvider's encoding/restore

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/maint-1.13.1
Commit: 5df58cbd37c8f2f87caf9cad47fa3104b3e03201
Parents: d038b2d
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Wed Oct 26 15:32:09 2016 +0100
Committer: Dan Haywood <da...@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