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 2012/02/16 09:18:36 UTC

svn commit: r1244886 - in /incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src: main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/ test/java/org/apache/isis/runtimes/dflt/objectstores/nosql/

Author: danhaywood
Date: Thu Feb 16 08:18:36 2012
New Revision: 1244886

URL: http://svn.apache.org/viewvc?rev=1244886&view=rev
Log:
ISIS-195: fixing two failing unit tests related to the NoSqlOid support for the nosql-mongo object store

Added:
    incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/test/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlKeyCreatorTest_reference.java   (with props)
Modified:
    incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlDestroyObjectCommand.java
    incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/test/java/org/apache/isis/runtimes/dflt/objectstores/nosql/DestroyObjectCommandImplementationTest.java
    incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/test/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlKeyCreatorTest.java

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlDestroyObjectCommand.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlDestroyObjectCommand.java?rev=1244886&r1=1244885&r2=1244886&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlDestroyObjectCommand.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlDestroyObjectCommand.java Thu Feb 16 08:18:36 2012
@@ -25,35 +25,35 @@ import org.apache.isis.runtimes.dflt.run
 import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.transaction.PersistenceCommandContext;
 
 final class NoSqlDestroyObjectCommand implements DestroyObjectCommand {
-    private final ObjectAdapter object;
+    private final ObjectAdapter adapter;
     private final KeyCreator keyCreator;
     private final VersionCreator versionCreator;
 
     public NoSqlDestroyObjectCommand(final KeyCreator keyCreator, final VersionCreator versionCreator, final ObjectAdapter object) {
         this.keyCreator = keyCreator;
         this.versionCreator = versionCreator;
-        this.object = object;
+        this.adapter = object;
     }
 
     @Override
     public void execute(final PersistenceCommandContext context) {
-        final String key = keyCreator.key(object.getOid());
-        final String version = versionCreator.versionString(object.getVersion());
-        final String specificationName = object.getSpecification().getFullIdentifier();
+        final String key = keyCreator.key(adapter.getOid());
+        final String version = versionCreator.versionString(adapter.getVersion());
+        final String specificationName = adapter.getSpecification().getFullIdentifier();
 
         ((NoSqlCommandContext) context).delete(specificationName, key, version);
     }
 
     @Override
     public ObjectAdapter onObject() {
-        return object;
+        return adapter;
     }
 
     @Override
     public String toString() {
         final ToString toString = new ToString(this);
-        toString.append("spec", object.getSpecification().getFullIdentifier());
-        toString.append("oid", object.getOid());
+        toString.append("spec", adapter.getSpecification().getFullIdentifier());
+        toString.append("oid", adapter.getOid());
         return toString.toString();
     }
 }

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/test/java/org/apache/isis/runtimes/dflt/objectstores/nosql/DestroyObjectCommandImplementationTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/test/java/org/apache/isis/runtimes/dflt/objectstores/nosql/DestroyObjectCommandImplementationTest.java?rev=1244886&r1=1244885&r2=1244886&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/test/java/org/apache/isis/runtimes/dflt/objectstores/nosql/DestroyObjectCommandImplementationTest.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/test/java/org/apache/isis/runtimes/dflt/objectstores/nosql/DestroyObjectCommandImplementationTest.java Thu Feb 16 08:18:36 2012
@@ -19,50 +19,83 @@
 
 package org.apache.isis.runtimes.dflt.objectstores.nosql;
 
-import java.util.Date;
-
 import org.apache.log4j.Level;
 import org.apache.log4j.Logger;
 import org.jmock.Expectations;
-import org.jmock.Mockery;
+import org.jmock.auto.Mock;
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.version.SerialNumberVersion;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.runtimes.dflt.objectstores.dflt.testsystem.TestProxySystemII;
-import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.simple.SerialOid;
-import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
+import org.apache.isis.core.testsupport.jmock.JUnitRuleMockery2;
+import org.apache.isis.core.testsupport.jmock.JUnitRuleMockery2.Mode;
 
 public class DestroyObjectCommandImplementationTest {
 
+    @Rule
+    public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(Mode.INTERFACES_AND_CLASSES);
+    
+    @Mock
+    private NoSqlCommandContext commandContext;
+    @Mock
+    private ObjectSpecification specification;
+    @Mock
+    private ObjectAdapter adapter;
+    @Mock
+    private NoSqlOid sqlOid;
+    @Mock
+    private SerialNumberVersionCreator versionCreator;
+    @Mock
+    private NoSqlKeyCreator keyCreator;
+    @Mock
+    private SerialNumberVersion version;
+
+
+    private long id = 123;
+    private String keyStr = Long.toString(id, 16);
+    
+    private NoSqlDestroyObjectCommand command;
+
     @Before
     public void setup() {
-        Logger.getRootLogger().setLevel(Level.OFF);
-        final TestProxySystemII system = new TestProxySystemII();
-        system.init();
+        context.checking(new Expectations(){{
+
+            allowing(specification).getFullIdentifier();
+            will(returnValue("com.foo.bar.SomeClass"));
+
+            allowing(adapter).getSpecification();
+            will(returnValue(specification));
+            
+            allowing(adapter).getOid();
+            will(returnValue(sqlOid));
+
+            allowing(adapter).getVersion();
+            will(returnValue(version));
+
+        }});
     }
 
     @Test
-    public void testname() throws Exception {
-        final ObjectSpecification specification = IsisContext.getSpecificationLoader().loadSpecification(ExampleReferencePojo.class);
-        final ObjectAdapter object = IsisContext.getPersistenceSession().createInstance(specification);
-        IsisContext.getPersistenceSession().makePersistent(object);
-        object.setOptimisticLock(new SerialNumberVersion(3, "username", new Date(1000)));
-
-        final long id = ((SerialOid) object.getOid()).getSerialNo();
-        final String key = Long.toString(id, 16);
+    public void execute() throws Exception {
+        
+        final String versionStr = "3";
 
-        final Mockery context = new Mockery();
-        final NoSqlCommandContext commandContext = context.mock(NoSqlCommandContext.class);
         context.checking(new Expectations() {
             {
-                one(commandContext).delete(specification.getFullIdentifier(), key, "3");
+                one(keyCreator).key(sqlOid);
+                will(returnValue(keyStr));
+
+                one(versionCreator).versionString(version);
+                will(returnValue(versionStr));
+
+                one(commandContext).delete(specification.getFullIdentifier(), keyStr, versionStr);
             }
         });
 
-        final NoSqlDestroyObjectCommand command = new NoSqlDestroyObjectCommand(new NoSqlKeyCreator(), new SerialNumberVersionCreator(), object);
+        command = new NoSqlDestroyObjectCommand(keyCreator, versionCreator, adapter);
         command.execute(commandContext);
     }
 }

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/test/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlKeyCreatorTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/test/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlKeyCreatorTest.java?rev=1244886&r1=1244885&r2=1244886&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/test/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlKeyCreatorTest.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/test/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlKeyCreatorTest.java Thu Feb 16 08:18:36 2012
@@ -26,8 +26,6 @@ import org.apache.log4j.Logger;
 import org.junit.Before;
 import org.junit.Test;
 
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.oid.Oid;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.runtimes.dflt.objectstores.dflt.testsystem.TestProxySystemII;
 import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.simple.SerialOid;
@@ -35,29 +33,22 @@ import org.apache.isis.runtimes.dflt.run
 
 public class NoSqlKeyCreatorTest {
 
+    private final int id = 3;
+    private final String reference = ExampleReferencePojo.class.getName() + "@" + id;
+    private final NoSqlOid oid3 = new NoSqlOid(ExampleReferencePojo.class.getName(), SerialOid.createPersistent(id));
+    
     private ObjectSpecification specification;
-    private ObjectAdapter object;
-    private final String reference = ExampleReferencePojo.class.getName() + "@3";
+    
     private NoSqlKeyCreator noSqlKeyCreator;
-    private final NoSqlOid oid3 = new NoSqlOid(ExampleReferencePojo.class.getName(), SerialOid.createPersistent(3));
 
     @Before
     public void setup() {
         Logger.getRootLogger().setLevel(Level.OFF);
         final TestProxySystemII system = new TestProxySystemII();
         system.init();
-
-        noSqlKeyCreator = new NoSqlKeyCreator();
-    }
-
-    @Test
-    public void reference() throws Exception {
         specification = IsisContext.getSpecificationLoader().loadSpecification(ExampleReferencePojo.class);
-        object = IsisContext.getPersistenceSession().createInstance(specification);
-        ((SerialOid) object.getOid()).setId(3);
-        object.getOid().makePersistent();
 
-        assertEquals(reference, noSqlKeyCreator.reference(object));
+        noSqlKeyCreator = new NoSqlKeyCreator();
     }
 
     @Test
@@ -69,7 +60,6 @@ public class NoSqlKeyCreatorTest {
 
     @Test
     public void specification() throws Exception {
-        specification = IsisContext.getSpecificationLoader().loadSpecification(ExampleReferencePojo.class);
         final ObjectSpecification spec = noSqlKeyCreator.specificationFromReference(reference);
         assertEquals(specification, spec);
     }

Added: incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/test/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlKeyCreatorTest_reference.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/test/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlKeyCreatorTest_reference.java?rev=1244886&view=auto
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/test/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlKeyCreatorTest_reference.java (added)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/test/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlKeyCreatorTest_reference.java Thu Feb 16 08:18:36 2012
@@ -0,0 +1,76 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+
+package org.apache.isis.runtimes.dflt.objectstores.nosql;
+
+import static org.junit.Assert.assertEquals;
+
+import org.jmock.Expectations;
+import org.jmock.auto.Mock;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.testsupport.jmock.JUnitRuleMockery2;
+import org.apache.isis.core.testsupport.jmock.JUnitRuleMockery2.Mode;
+import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.simple.SerialOid;
+
+public class NoSqlKeyCreatorTest_reference {
+
+    @Rule
+    public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(Mode.INTERFACES_ONLY);
+
+
+    @Mock
+    private ObjectSpecification specification;
+    @Mock
+    private ObjectAdapter adapter;
+    
+    private final String className = "com.foo.bar.SomeClass";
+    private final SerialOid serialOid = SerialOid.createPersistent(123);
+    private final NoSqlOid noSqlOid = new NoSqlOid(className, serialOid);
+    
+    private NoSqlKeyCreator noSqlKeyCreator;
+
+    @Before
+    public void setup() {
+        noSqlKeyCreator = new NoSqlKeyCreator();
+        
+        context.checking(new Expectations() {
+            {
+                allowing(adapter).getSpecification();
+                will(returnValue(specification));
+
+                allowing(adapter).getOid();
+                will(returnValue(noSqlOid));
+
+                allowing(specification).getFullIdentifier();
+                will(returnValue(className));
+            }
+        });
+    }
+
+    @Test
+    public void reference() throws Exception {
+        final String expectedReference = className + "@" + Long.toString(serialOid.getSerialNo(), 16);
+        assertEquals(expectedReference, noSqlKeyCreator.reference(adapter));
+    }
+}

Propchange: incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/test/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlKeyCreatorTest_reference.java
------------------------------------------------------------------------------
    svn:eol-style = native