Return-Path: X-Original-To: apmail-jackrabbit-oak-commits-archive@minotaur.apache.org Delivered-To: apmail-jackrabbit-oak-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 323D31002A for ; Tue, 24 Sep 2013 11:21:48 +0000 (UTC) Received: (qmail 83941 invoked by uid 500); 24 Sep 2013 11:21:42 -0000 Delivered-To: apmail-jackrabbit-oak-commits-archive@jackrabbit.apache.org Received: (qmail 83891 invoked by uid 500); 24 Sep 2013 11:21:37 -0000 Mailing-List: contact oak-commits-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: oak-dev@jackrabbit.apache.org Delivered-To: mailing list oak-commits@jackrabbit.apache.org Received: (qmail 83800 invoked by uid 99); 24 Sep 2013 11:21:29 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 24 Sep 2013 11:21:29 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 24 Sep 2013 11:21:26 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 0290C2388B3A; Tue, 24 Sep 2013 11:21:05 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1525856 [2/2] - in /jackrabbit/oak/trunk/oak-core/src: main/java/org/apache/jackrabbit/oak/plugins/mongomk/ main/java/org/apache/jackrabbit/oak/plugins/mongomk/util/ test/java/org/apache/jackrabbit/oak/plugins/mongomk/ test/java/org/apache... Date: Tue, 24 Sep 2013 11:21:04 -0000 To: oak-commits@jackrabbit.apache.org From: mreutegg@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20130924112105.0290C2388B3A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/SimpleTest.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/SimpleTest.java?rev=1525856&r1=1525855&r2=1525856&view=diff ============================================================================== --- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/SimpleTest.java (original) +++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/SimpleTest.java Tue Sep 24 11:21:03 2013 @@ -18,6 +18,7 @@ package org.apache.jackrabbit.oak.plugin import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -379,35 +380,41 @@ public class SimpleTest { MongoMK mk = createMK(); try { DocumentStore store = mk.getDocumentStore(); - String head = mk.getHeadRevision(); - head = mk.commit("", "+\"/test\":{\"foo\":{}}", head, null); + Revision head = Revision.fromString(mk.getHeadRevision()); + head = Revision.fromString(mk.commit("", "+\"/test\":{\"foo\":{}}", head.toString(), null)); // root node must not have the revision NodeDocument rootDoc = store.find(Collection.NODES, "0:/"); + assertNotNull(rootDoc); assertFalse(rootDoc.containsRevision(head)); // test node must have head in revisions NodeDocument node = store.find(Collection.NODES, "1:/test"); + assertNotNull(node); assertTrue(node.containsRevision(head)); // foo must not have head in revisions and must refer to test // as commit root (depth = 1) NodeDocument foo = store.find(Collection.NODES, "2:/test/foo"); + assertNotNull(foo); assertFalse(foo.containsRevision(head)); assertEquals("/test", foo.getCommitRootPath(head)); - head = mk.commit("", "+\"/bar\":{}+\"/test/foo/bar\":{}", head, null); + head = Revision.fromString(mk.commit("", "+\"/bar\":{}+\"/test/foo/bar\":{}", head.toString(), null)); // root node is root of commit rootDoc = store.find(Collection.NODES, "0:/"); + assertNotNull(rootDoc); assertTrue(rootDoc.containsRevision(head)); // /bar refers to root nodes a commit root NodeDocument bar = store.find(Collection.NODES, "1:/bar"); + assertNotNull(bar); assertEquals("/", bar.getCommitRootPath(head)); // /test/foo/bar refers to root nodes a commit root bar = store.find(Collection.NODES, "3:/test/foo/bar"); + assertNotNull(bar); assertEquals("/", bar.getCommitRootPath(head)); } finally { Added: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/util/MergeSortedIteratorsTest.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/util/MergeSortedIteratorsTest.java?rev=1525856&view=auto ============================================================================== --- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/util/MergeSortedIteratorsTest.java (added) +++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/util/MergeSortedIteratorsTest.java Tue Sep 24 11:21:03 2013 @@ -0,0 +1,78 @@ +/* + * 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.jackrabbit.oak.plugins.mongomk.util; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.Iterator; +import java.util.List; + +import org.junit.Test; + +import com.google.common.collect.Lists; + +import static junit.framework.Assert.assertEquals; + +/** + * Tests for {@link MergeSortedIterators}. + */ +public class MergeSortedIteratorsTest { + + @SuppressWarnings("unchecked") + @Test + public void test() { + assertEquals(list(), sort()); + assertEquals(list(), sort(list())); + assertEquals(list(1, 2, 3, 4), sort(list(1, 2), list(3, 4))); + assertEquals(list(1, 2, 3, 4), sort(list(1, 3), list(2, 4))); + assertEquals(list(1, 2, 3), sort(list(1, 3), list(2))); + assertEquals(list(1, 2, 3, 4), sort(list(1, 4), list(2, 3))); + assertEquals(list(1, 2, 3, 4, 5, 6), sort(list(1, 5), list(2, 4), list(3, 6))); + } + + private List sort(List... lists) { + List> iterators = Lists.newArrayList(); + for (List list : lists) { + iterators.add(list.iterator()); + } + final Iterator> it = iterators.iterator(); + MergeSortedIterators sort = new MergeSortedIterators(new Comparator() { + @Override + public int compare(Integer o1, Integer o2) { + return o1.compareTo(o2); + } + }) { + @Override + public Iterator nextIterator() { + return it.hasNext() ? it.next() : null; + } + }; + List sorted = new ArrayList(); + while (sort.hasNext()) { + sorted.add(sort.next()); + } + return sorted; + } + + private static List list(int... values) { + List list = new ArrayList(); + for (int v : values) { + list.add(v); + } + return list; + } +} Propchange: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/util/MergeSortedIteratorsTest.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/mongomk/util/MergeSortedIteratorsTest.java ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Rev URL