Mercurial > hg > Members > shoshi > jungle > jungle-core
view src/test/java/jp/ac/u_ryukyu/ie/cr/jungle/core/treeeditor/Difference/MultiDifferencialJngleTreeEditorTest.java @ 329:2a0cb1f0ba4e
rename Error package
author | kono |
---|---|
date | Sat, 08 Jul 2017 21:05:55 +0900 |
parents | 201cc75a9984 |
children |
line wrap: on
line source
package jp.ac.u_ryukyu.ie.cr.jungle.core.treeeditor.Difference; import jp.ac.u_ryukyu.ie.cr.jungle.DefaultJungle; import jp.ac.u_ryukyu.ie.cr.jungle.Jungle; import jp.ac.u_ryukyu.ie.cr.jungle.store.nodepath.DefaultNodePath; import jp.ac.u_ryukyu.ie.cr.jungle.store.nodepath.NodePath; import jp.ac.u_ryukyu.ie.cr.jungle.transaction.editor.jungleTreeEditor.JungleTreeEditor; import jp.ac.u_ryukyu.ie.cr.jungle.tree.JungleTree; import jp.ac.u_ryukyu.ie.cr.jungle.util.Either; import jp.ac.u_ryukyu.ie.cr.jungle.util.jungleError.Error; import org.junit.Assert; import org.junit.Test; /** * デバッガで確かめる * 手順 * Thread 1 を JungleTreeEditorの TransactionManager newTxManager = either.b();の部分で止める * そしてThread 2で TreeContextのAppendedNode */ public class MultiDifferencialJngleTreeEditorTest { @Test public void MultiDifferencialJngleTreeEditorTests() throws InterruptedException { Jungle jungle = new DefaultJungle(null, "hogehoge"); JungleTree tree = jungle.createNewDifferenceTree("df"); Thread t1 = new EditorThread(tree); Thread t2 = new EditorThread(tree); t1.start(); t2.start(); System.out.println("start"); t1.join(); t2.join(); } private class EditorThread extends Thread { JungleTree tree; EditorThread(JungleTree tree) { this.tree = tree; } @Override public void run(){ Either<Error, JungleTreeEditor> either2; System.out.println(getName() + "thread"); do { JungleTreeEditor editor = tree.getJungleTreeEditor(); NodePath path = new DefaultNodePath(); Either<Error, JungleTreeEditor> either = editor.addNewChildAt(path, 0); Assert.assertFalse(either.isA()); JungleTreeEditor editor2 = either.b(); either2 = editor2.success(); System.out.println(getName() + "success"); } while(either2.isA()); } } }