Mercurial > hg > Members > tatsuki > bench > jungle-core
annotate src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/core/impl/treeeditor/DefaultTreeEditorTest.java @ 70:053c9b52a5b2
testProgram error fix
author | one |
---|---|
date | Wed, 20 Aug 2014 18:10:30 +0900 |
parents | 650fe2a0dccc |
children | 715a9fbf02fc |
rev | line source |
---|---|
44 | 1 package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.core.impl.treeeditor; |
2 | |
3 import java.nio.ByteBuffer; | |
4 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath; | |
5 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultTreeEditor; | |
6 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.AppendChildAt; | |
49
e3a507fd57a4
modified TreeEditor and JungleTreeEditor (not done yet)
Shoshi TAMAKI
parents:
45
diff
changeset
|
7 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.trasnformer.PutAttribute; |
45 | 8 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.tests.util.TestUtil; |
54 | 9 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode; |
45 | 10 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultEvaluator; |
44 | 11 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.DefaultTraverser; |
45 | 12 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.traverser.Traversal; |
44 | 13 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either; |
14 import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error; | |
15 import junit.framework.Assert; | |
16 import junit.framework.TestCase; | |
17 | |
18 public class DefaultTreeEditorTest extends TestCase | |
19 { | |
49
e3a507fd57a4
modified TreeEditor and JungleTreeEditor (not done yet)
Shoshi TAMAKI
parents:
45
diff
changeset
|
20 public DefaultTreeEditor instance() |
44 | 21 { |
22 DefaultTraverser traverser = new DefaultTraverser(); | |
49
e3a507fd57a4
modified TreeEditor and JungleTreeEditor (not done yet)
Shoshi TAMAKI
parents:
45
diff
changeset
|
23 return new DefaultTreeEditor(traverser); |
44 | 24 } |
25 | |
26 public void testEdittingDoesNotEffectToOtherTree() | |
27 { | |
54 | 28 DefaultTreeNode root = TestUtil.createMockTree(3); |
49
e3a507fd57a4
modified TreeEditor and JungleTreeEditor (not done yet)
Shoshi TAMAKI
parents:
45
diff
changeset
|
29 DefaultTreeEditor editor = new DefaultTreeEditor(new DefaultTraverser()); |
45 | 30 DefaultNodePath path = new DefaultNodePath().add(0).add(2); |
31 | |
54 | 32 DefaultTreeNode oldRoot = root; |
45 | 33 |
49
e3a507fd57a4
modified TreeEditor and JungleTreeEditor (not done yet)
Shoshi TAMAKI
parents:
45
diff
changeset
|
34 DefaultTreeEditor currentEditor = editor; |
45 | 35 String key = "path"; |
36 | |
49
e3a507fd57a4
modified TreeEditor and JungleTreeEditor (not done yet)
Shoshi TAMAKI
parents:
45
diff
changeset
|
37 |
54 | 38 DefaultTreeNode currentRoot = root; |
45 | 39 for(DefaultNodePath part : path.inits()){ |
40 ByteBuffer value = ByteBuffer.wrap(part.toString().getBytes()); | |
49
e3a507fd57a4
modified TreeEditor and JungleTreeEditor (not done yet)
Shoshi TAMAKI
parents:
45
diff
changeset
|
41 PutAttribute putAttribute = new PutAttribute(key,value); |
54 | 42 Either<Error,DefaultTreeNode> either = currentEditor.edit(currentRoot,part,putAttribute); |
45 | 43 if(either.isA()){ |
44 Assert.fail(); | |
45 } | |
49
e3a507fd57a4
modified TreeEditor and JungleTreeEditor (not done yet)
Shoshi TAMAKI
parents:
45
diff
changeset
|
46 currentRoot = either.b(); |
45 | 47 } |
48 | |
54 | 49 DefaultTreeNode newRoot = currentRoot; |
49
e3a507fd57a4
modified TreeEditor and JungleTreeEditor (not done yet)
Shoshi TAMAKI
parents:
45
diff
changeset
|
50 DefaultTraverser traverser = new DefaultTraverser(); |
45 | 51 |
52 for(DefaultNodePath part : path.inits()){ | |
70 | 53 Either<Error,Traversal<DefaultTreeNode>> either = traverser.traverse(newRoot,new DefaultEvaluator(part)); |
45 | 54 if(either.isA()){ |
55 Assert.fail(); | |
56 } | |
70 | 57 DefaultTreeNode target = either.b().destination(); |
45 | 58 String expected = part.toString(); |
59 String actual = new String(target.getAttributes().get(key).array()); | |
60 | |
61 Assert.assertEquals(expected,actual); | |
62 } | |
63 | |
64 for(DefaultNodePath part : path.inits()){ | |
70 | 65 Either<Error,Traversal<DefaultTreeNode>> either = traverser.traverse(oldRoot,new DefaultEvaluator(part)); |
45 | 66 if(either.isA()){ |
67 Assert.fail(); | |
68 } | |
70 | 69 DefaultTreeNode target = either.b().destination(); |
45 | 70 ByteBuffer actual = target.getAttributes().get(key); |
71 | |
72 Assert.assertNull(actual); | |
73 } | |
44 | 74 |
75 } | |
76 | |
49
e3a507fd57a4
modified TreeEditor and JungleTreeEditor (not done yet)
Shoshi TAMAKI
parents:
45
diff
changeset
|
77 public void testEdit() |
44 | 78 { |
49
e3a507fd57a4
modified TreeEditor and JungleTreeEditor (not done yet)
Shoshi TAMAKI
parents:
45
diff
changeset
|
79 DefaultTreeEditor instance = instance(); |
54 | 80 DefaultTreeNode node = new DefaultTreeNode(); |
44 | 81 DefaultNodePath path = new DefaultNodePath(); |
82 | |
54 | 83 Either<Error,DefaultTreeNode> either = instance.edit(node,path,new AppendChildAt(0)); |
44 | 84 if(either.isA()){ |
85 Assert.fail(); | |
86 } | |
54 | 87 DefaultTreeNode newRoot = either.b(); |
49
e3a507fd57a4
modified TreeEditor and JungleTreeEditor (not done yet)
Shoshi TAMAKI
parents:
45
diff
changeset
|
88 Assert.assertEquals(1,newRoot.getChildren().size()); |
44 | 89 } |
90 } |