Author: michiel
Date: 2010-03-22 17:25:06 +0100 (Mon, 22 Mar 2010)
New Revision: 41561
Added:
mmbase/branches/MMBase-1_9/core/src/test/java/org/mmbase/bridge/util/CloneUtilTest.java
Modified:
mmbase/branches/MMBase-1_9/core/src/test/java/org/mmbase/bridge/util/QueriesTest.java
Log:
test case for CloneUtil
Added:
mmbase/branches/MMBase-1_9/core/src/test/java/org/mmbase/bridge/util/CloneUtilTest.java
===================================================================
---
mmbase/branches/MMBase-1_9/core/src/test/java/org/mmbase/bridge/util/CloneUtilTest.java
(rev 0)
+++
mmbase/branches/MMBase-1_9/core/src/test/java/org/mmbase/bridge/util/CloneUtilTest.java
2010-03-22 16:25:06 UTC (rev 41561)
@@ -0,0 +1,92 @@
+/*
+
+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.util;
+
+import org.mmbase.bridge.*;
+import org.mmbase.bridge.mock.*;
+import org.mmbase.datatypes.*;
+import org.mmbase.storage.search.*;
+import java.util.*;
+import org.junit.*;
+import static org.junit.Assert.*;
+import static org.junit.Assume.*;
+
+
+/**
+ *
+ * @author Michiel Meeuwissen
+ * @version $Id: QueriesTest.java 40323 2010-01-04 13:43:05Z michiel $
+ */
+public class CloneUtilTest {
+
+ private static final String REMOTE_URI =
"rmi://127.0.0.1:1111/exampleremotecontext";
+ private static Cloud remoteCloud;
+
+
+ @BeforeClass
+ public static void setup() throws Exception {
+ //MockCloudContext.getInstance().addCore();
+
//MockCloudContext.getInstance().addNodeManagers(MockBuilderReader.getBuilderLoader().getChildResourceLoader("mynews"));
+ try {
+ CloudContext c = ContextProvider.getCloudContext(REMOTE_URI);
+ remoteCloud = c.getCloud("mmbase", "class", null);
+ System.out.println("Found remote cloud " + remoteCloud);
+ } catch (Exception e) {
+ System.err.println("Cannot get RemoteCloud. (" + e.getMessage() +
"). Some tests will be skipped. (but reported as succes: see
http://jira.codehaus.org/browse/SUREFIRE-542)");
+ System.err.println("You can start up a test-environment for remote
tests: trunk/example-webapp$ mvn jetty:run");
+ remoteCloud = null;
+ }
+ }
+
+
+
+
+ @Test
+ public void cloneRelation() {
+ assumeNotNull(remoteCloud);
+ Node mag = remoteCloud.getNode("default.mags");
+
+ {
+ Relation rel = mag.getRelations("posrel", "news").get(0);
+ Node news = rel.getDestination();
+ assertEquals("news", news.getNodeManager().getName());
+
+ Node clone = CloneUtil.cloneNode(news);
+ assertEquals("news", clone.getNodeManager().getName());
+ clone.commit();
+ int number = clone.getNumber();
+ System.out.println("Created " + number);
+ assertTrue(number > 0);
+ Relation relClone = CloneUtil.cloneRelation(rel);
+ relClone.setDestination(clone);
+ assertEquals(number, relClone.getDestination().getNumber());
+ relClone.commit();
+ assertEquals(number, relClone.getDestination().getNumber());
+ }
+ {
+ Node clone = CloneUtil.cloneNode(mag);
+ clone.setValue("title", "clone of " + mag.getStringValue("title"));
+ clone.commit();
+ System.out.println("Created " + clone.getNumber());
+ RelationIterator news = mag.getRelations("posrel",
remoteCloud.getNodeManager("news"), "destination").relationIterator();
+ while (news.hasNext()) {
+ Relation rel = news.nextRelation();
+ Relation relclone = CloneUtil.cloneRelation(rel);
+ relclone.setSource(clone);
+ assertEquals(relclone.getIntValue("snumber"),
clone.getNumber());
+ relclone.commit();
+ assertEquals(relclone.getIntValue("snumber"),
clone.getNumber());
+ System.out.println("Created " +
relclone.getFunctionValue("gui", null));
+ }
+ assertEquals(mag.countRelations(), clone.countRelations());
+ }
+ }
+}
Modified:
mmbase/branches/MMBase-1_9/core/src/test/java/org/mmbase/bridge/util/QueriesTest.java
===================================================================
---
mmbase/branches/MMBase-1_9/core/src/test/java/org/mmbase/bridge/util/QueriesTest.java
2010-03-22 15:15:52 UTC (rev 41560)
+++
mmbase/branches/MMBase-1_9/core/src/test/java/org/mmbase/bridge/util/QueriesTest.java
2010-03-22 16:25:06 UTC (rev 41561)
@@ -205,6 +205,7 @@
NodeQuery q = Queries.createRelatedNodesQuery(node,
cloud.getNodeManager("news"), "posrel", "destination");
String before = q.toSql();
List<SortOrder> sos = Queries.addSortOrders(q, "posrel.pos,number",
"UP");
+ Queries.sortUniquely(q);
assertEquals(q.toSql() + sos, 2, sos.size());
assertEquals("" + node.getNumber(),
Queries.getSortOrderFieldValue(node, sos.get(1)).toString());
@@ -292,7 +293,7 @@
if (pref1 != null) n1 = n1.getNodeValue(pref1 + ".number");
if (pref2 != null) n2 = n2.getNodeValue(pref2 + ".number");
- assertEquals(n1, n2);
+ assertEquals(n1.getNumber(), n2.getNumber());
}
}
@@ -308,7 +309,8 @@
// implementation based on NodeQuery
NodeQuery q = Queries.createRelatedNodesQuery(node,
cloud.getNodeManager("news"), "posrel", "destination");
- Queries.addSortOrders(q, "posrel.pos,number", "DOWN");
+ Queries.addSortOrders(q, "posrel.pos", "DOWN");
+ Queries.sortUniquely(q);
List<Node> relatedNodes2 = Queries.getRelatedNodesInTransaction(node,
q); // outside a transaction it works too
System.out.println(toString(relatedNodes, "news") + " =? " +
toString(relatedNodes2, null));
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs