incubator-sling-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cziege...@apache.org
Subject svn commit: r730337 - in /incubator/sling/trunk: extensions/event/src/main/java/org/apache/sling/event/ extensions/event/src/test/java/org/apache/sling/event/ jcr/resource/src/main/java/org/apache/sling/jcr/resource/
Date Wed, 31 Dec 2008 07:42:34 GMT
Author: cziegeler
Date: Tue Dec 30 23:42:34 2008
New Revision: 730337

URL: http://svn.apache.org/viewvc?rev=730337&view=rev
Log:
SLING-797 - Fix class check and add junit tests to cover this.

Modified:
    incubator/sling/trunk/extensions/event/src/main/java/org/apache/sling/event/EventUtil.java
    incubator/sling/trunk/extensions/event/src/test/java/org/apache/sling/event/EventUtilTest.java
    incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/JcrResourceUtil.java

Modified: incubator/sling/trunk/extensions/event/src/main/java/org/apache/sling/event/EventUtil.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/extensions/event/src/main/java/org/apache/sling/event/EventUtil.java?rev=730337&r1=730336&r2=730337&view=diff
==============================================================================
--- incubator/sling/trunk/extensions/event/src/main/java/org/apache/sling/event/EventUtil.java
(original)
+++ incubator/sling/trunk/extensions/event/src/main/java/org/apache/sling/event/EventUtil.java
Tue Dec 30 23:42:34 2008
@@ -500,13 +500,13 @@
      */
     public static Value getNodePropertyValue(final ValueFactory valueFactory, final Object
eventValue) {
         final Value val;
-        if (eventValue.getClass().isAssignableFrom(Calendar.class)) {
+        if (eventValue instanceof Calendar) {
             val = valueFactory.createValue((Calendar)eventValue);
-        } else if (eventValue.getClass().isAssignableFrom(Long.class)) {
+        } else if (eventValue instanceof Long) {
             val = valueFactory.createValue((Long)eventValue);
-        } else if (eventValue.getClass().isAssignableFrom(Double.class)) {
+        } else if (eventValue instanceof Double) {
             val = valueFactory.createValue(((Double)eventValue).doubleValue());
-        } else if (eventValue.getClass().isAssignableFrom(Boolean.class)) {
+        } else if (eventValue instanceof Boolean) {
             val = valueFactory.createValue((Boolean) eventValue);
         } else if (eventValue instanceof String) {
             val = valueFactory.createValue((String)eventValue);

Modified: incubator/sling/trunk/extensions/event/src/test/java/org/apache/sling/event/EventUtilTest.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/extensions/event/src/test/java/org/apache/sling/event/EventUtilTest.java?rev=730337&r1=730336&r2=730337&view=diff
==============================================================================
--- incubator/sling/trunk/extensions/event/src/test/java/org/apache/sling/event/EventUtilTest.java
(original)
+++ incubator/sling/trunk/extensions/event/src/test/java/org/apache/sling/event/EventUtilTest.java
Tue Dec 30 23:42:34 2008
@@ -18,18 +18,40 @@
  */
 package org.apache.sling.event;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 
+import java.io.InputStream;
+import java.util.Calendar;
 import java.util.Properties;
 
+import javax.jcr.PropertyType;
+import javax.jcr.RepositoryException;
+import javax.jcr.Value;
+import javax.jcr.ValueFactory;
+import javax.jcr.ValueFormatException;
+
+import org.jmock.Expectations;
+import org.jmock.Mockery;
+import org.jmock.integration.junit4.JMock;
+import org.jmock.integration.junit4.JUnit4Mockery;
 import org.junit.Test;
+import org.junit.runner.RunWith;
 import org.osgi.service.event.Event;
 
 /**
  * Tests for the EventUtil utility methods.
  */
+@RunWith(JMock.class)
 public class EventUtilTest {
 
+    protected Mockery context;
+
+    public EventUtilTest() {
+        this.context = new JUnit4Mockery();
+    }
+
     @Test public void testDistributeFlag() {
         final Event distributableEvent = EventUtil.createDistributableEvent("some/topic",
null);
         assertTrue(EventUtil.shouldDistribute(distributableEvent));
@@ -45,4 +67,76 @@
         final Event remoteEvent = new Event("remote/event", props);
         assertFalse(EventUtil.isLocal(remoteEvent));
     }
+
+    @Test public void testGetNodePropertyValue() {
+        final ValueFactory factory = this.context.mock(ValueFactory.class);
+        this.context.checking(new Expectations() {{
+            allowing(factory).createValue(true);
+            will(returnValue(new ValueImpl(PropertyType.BOOLEAN)));
+            allowing(factory).createValue(false);
+            will(returnValue(new ValueImpl(PropertyType.BOOLEAN)));
+            allowing(factory).createValue(with(any(Long.class)));
+            will(returnValue(new ValueImpl(PropertyType.LONG)));
+            allowing(factory).createValue(with(any(String.class)));
+            will(returnValue(new ValueImpl(PropertyType.STRING)));
+            allowing(factory).createValue(with(any(Calendar.class)));
+            will(returnValue(new ValueImpl(PropertyType.DATE)));
+        }});
+        // boolean
+        assertEquals(PropertyType.BOOLEAN, EventUtil.getNodePropertyValue(factory, true).getType());
+        assertEquals(PropertyType.BOOLEAN, EventUtil.getNodePropertyValue(factory, false).getType());
+        assertEquals(PropertyType.BOOLEAN, EventUtil.getNodePropertyValue(factory, Boolean.TRUE).getType());
+        assertEquals(PropertyType.BOOLEAN, EventUtil.getNodePropertyValue(factory, Boolean.FALSE).getType());
+        // long
+        assertEquals(PropertyType.LONG, EventUtil.getNodePropertyValue(factory, (long)5).getType());
+        // int = not possible
+        assertEquals(null, EventUtil.getNodePropertyValue(factory, 5));
+        // string
+        assertEquals(PropertyType.STRING, EventUtil.getNodePropertyValue(factory, "something").getType());
+        // calendar
+        assertEquals(PropertyType.DATE, EventUtil.getNodePropertyValue(factory, Calendar.getInstance()).getType());
+    }
+
+    private final static class ValueImpl implements Value {
+
+        private final int type;
+
+        public ValueImpl(int type) {
+            this.type = type;
+        }
+
+        public boolean getBoolean() throws ValueFormatException,
+                IllegalStateException, RepositoryException {
+            return false;
+        }
+
+        public Calendar getDate() throws ValueFormatException,
+                IllegalStateException, RepositoryException {
+            return null;
+        }
+
+        public double getDouble() throws ValueFormatException,
+                IllegalStateException, RepositoryException {
+            return 0;
+        }
+
+        public long getLong() throws ValueFormatException,
+                IllegalStateException, RepositoryException {
+            return 0;
+        }
+
+        public InputStream getStream() throws IllegalStateException,
+                RepositoryException {
+            return null;
+        }
+
+        public String getString() throws ValueFormatException,
+                IllegalStateException, RepositoryException {
+            return null;
+        }
+
+        public int getType() {
+            return this.type;
+        }
+    }
 }

Modified: incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/JcrResourceUtil.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/JcrResourceUtil.java?rev=730337&r1=730336&r2=730337&view=diff
==============================================================================
--- incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/JcrResourceUtil.java
(original)
+++ incubator/sling/trunk/jcr/resource/src/main/java/org/apache/sling/jcr/resource/JcrResourceUtil.java
Tue Dec 30 23:42:34 2008
@@ -113,17 +113,17 @@
             throws RepositoryException {
         Value val;
         ValueFactory fac = session.getValueFactory();
-        if(value.getClass().isAssignableFrom(Calendar.class)) {
+        if(value instanceof Calendar) {
             val = fac.createValue((Calendar)value);
-        } else if (value.getClass().isAssignableFrom(InputStream.class)) {
+        } else if (value instanceof InputStream) {
             val = fac.createValue((InputStream)value);
-        } else if (value.getClass().isAssignableFrom(Node.class)) {
+        } else if (value instanceof Node) {
             val = fac.createValue((Node)value);
-        } else if (value.getClass().isAssignableFrom(Long.class)) {
+        } else if (value instanceof Long) {
             val = fac.createValue((Long)value);
-        } else if (value.getClass().isAssignableFrom(Number.class)) {
+        } else if (value instanceof Number) {
             val = fac.createValue(((Number)value).doubleValue());
-        } else if (value.getClass().isAssignableFrom(Boolean.class)) {
+        } else if (value instanceof Boolean) {
             val = fac.createValue((Boolean) value);
         } else {
             val = fac.createValue((String)value);



Mime
View raw message