view src/test/java/jp/ac/u_ryukyu/ie/cr/shoshi/jungle/tests/util/TestUtil.java @ 54:650fe2a0dccc

modified tests
author Shoshi TAMAKI
date Fri, 08 Feb 2013 17:08:42 +0900
parents fb00d7b147c8
children a3a8c49ad209
line wrap: on
line source

package jp.ac.u_ryukyu.ie.cr.shoshi.jungle.tests.util;

import java.nio.ByteBuffer;

import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.NodePath;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.store.impl.DefaultNodePath;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.transaction.DefaultTreeNode;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Either;
import jp.ac.u_ryukyu.ie.cr.shoshi.jungle.util.Error;

public class TestUtil
{
	public static DefaultTreeNode createMockTree(int _maxDepth)
	{
		return _createMockTree(1,_maxDepth,new DefaultNodePath());
	}
	
	public static DefaultTreeNode _createMockTree(int _currentDepth,int _maxDepth,NodePath _path)
	{
		DefaultTreeNode parent = new DefaultTreeNode();
		Either<Error, DefaultTreeNode> either = parent.getAttributes().put("KEY",ByteBuffer.wrap(_path.toString().getBytes()));
		if(either.isA()){
			return null;
		}
		parent = either.b();
		
		if(_currentDepth != _maxDepth){
			for(int i = 0;i <= _currentDepth;i ++){
				DefaultTreeNode ch = _createMockTree(_currentDepth + 1,_maxDepth,_path.add(i));
				either = parent.getChildren().addNewChildAt(i,ch);
				if(either.isA()){
					return null;
				}
				parent = either.b();
			}
		}
		
		return parent;
	}
}