Author: michiel
Date: 2009-10-20 13:30:57 +0200 (Tue, 20 Oct 2009)
New Revision: 39237

Added:
   mmbase/trunk/core/src/main/java/org/mmbase/bridge/mock/MockTransaction.java
Modified:
   mmbase/trunk/core/src/main/java/org/mmbase/bridge/mock/MockCloud.java
Log:
started on transaction mocking. Not yet really functional.

Modified: mmbase/trunk/core/src/main/java/org/mmbase/bridge/mock/MockCloud.java
===================================================================
--- mmbase/trunk/core/src/main/java/org/mmbase/bridge/mock/MockCloud.java       
2009-10-20 10:18:01 UTC (rev 39236)
+++ mmbase/trunk/core/src/main/java/org/mmbase/bridge/mock/MockCloud.java       
2009-10-20 11:30:57 UTC (rev 39237)
@@ -113,8 +113,7 @@
 
     @Override
     protected Transaction newTransaction(String name) {
-        // TODO
-        throw new UnsupportedOperationException();
+        return new MockTransaction(name, this);
     }
 
 }

Added: 
mmbase/trunk/core/src/main/java/org/mmbase/bridge/mock/MockTransaction.java
===================================================================
--- mmbase/trunk/core/src/main/java/org/mmbase/bridge/mock/MockTransaction.java 
                        (rev 0)
+++ mmbase/trunk/core/src/main/java/org/mmbase/bridge/mock/MockTransaction.java 
2009-10-20 11:30:57 UTC (rev 39237)
@@ -0,0 +1,78 @@
+/*
+
+This software is OSI Certified Open Source Software.
+OSI Certified is a certification mark of the Open Source Initiative.
+
+The license (Mozilla version 1.0) can be read at the MMBase site.
+See http://www.MMBase.org/license
+
+*/
+
+package org.mmbase.bridge.mock;
+import org.mmbase.bridge.*;
+import org.mmbase.bridge.util.*;
+import org.mmbase.bridge.implementation.*;
+import org.mmbase.security.*;
+import java.util.*;
+
+/**
+ * MockTransaction for the moment only does't give too much exceptions. It 
doesn't actually work, so {...@link #cancel} still throws 
UnsupportedOperationException.
+ *
+ * @author  Michiel Meeuwissen
+ * @version $Id: MockCloud.java 39226 2009-10-19 20:00:46Z michiel $
+ * @since   MMBase-1.9.2
+ * @todo    EXPERIMENTAL
+ */
+
+public class MockTransaction extends MockCloud implements Transaction {
+
+    private final NodeList nodes;
+    private final MockCloud cloud;
+    MockTransaction(String n, MockCloud cloud) {
+        super(n, cloud.getCloudContext(), cloud.getUser());
+        this.cloud = cloud;
+        nodes = cloud.createNodeList();
+    }
+
+    public boolean commit() {
+        return true;
+    }
+
+    public void cancel() {
+        throw new UnsupportedOperationException();
+    }
+    public boolean isCommitted() {
+        return true;
+    }
+
+    public boolean isCanceled() {
+        return false;
+    }
+
+    public NodeList getNodes() {
+        return nodes;
+    }
+    public String getCloudName() {
+        return cloud.getName();
+    }
+
+
+    @Override
+    Node getNode(final Map<String, Object> m, final NodeManager nm) {
+        Node n = super.getNode(m, nm);
+        nodes.add(n);
+        return n;
+    }
+
+    @Override
+    public Cloud getNonTransactionalCloud() {
+        Cloud result = cloud;
+        while (result instanceof Transaction) {
+            result = result.getNonTransactionalCloud();
+        }
+        return result;
+    }
+
+
+}
+

_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to