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