123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- /**
- * Created by Mai on 2017/4/1.
- */
- const fs = require('fs');
- var test = require('tape');
- var idTreeUtil = null;
- var idTreeSetting = {
- id: 'ID',
- pid: 'ParentID',
- nid: 'NextSiblingID',
- rootId: -1,
- autoUpdate: false
- };
- var testTreeData = null;
- var testTree = null;
- var getKeyIDs = function (node) {
- var data = [];
- if (node) {
- data.push(node.getID());
- data.push(node.getParentID());
- data.push(node.getNextSiblingID());
- } else {
- for (var i = 1; i <= 3; i++) {
- data.push(-1);
- }
- }
- return data;
- }
- test('loading idTree Module: ', function (t) {
- var idTreeCode = fs.readFileSync(__dirname + '../../../../public/web/idTree.js', 'utf8', 'r');
- eval(idTreeCode);
- idTreeUtil = idTree;
- t.pass('pass for loading idTree Module');
- t.end();
- });
- test('loading Testing Data: ', function (t) {
- var idTreeDataCode = fs.readFileSync(__dirname + '../../../tmp_data/data_15690.js', 'utf8', 'r');
- eval(idTreeDataCode);
- testTreeData = datas;
- t.pass('pass for loading Testing Data');
- t.end();
- });
- test('idTree loading Testing Data: ', function (t) {
- t.plan(1);
- testTree = idTreeUtil.createNew(idTreeSetting);
- testTree.loadDatas(testTreeData);
- t.equal(testTree.count(), testTreeData.length);
- t.end();
- });
- test('upMove Node: ', function (t) {
- t.plan(3);
- var testNodeID = 13431;
- var testResult = [[13429, 13427, 13431], [13430, 13427, 13432], [13431, 13427, 13430]];
- var node = testTree.findNode(testNodeID), pre = node.preSibling, prePre = pre ? pre.preSibling : null;
- node.upMove();
- t.deepEqual(getKeyIDs(prePre), testResult[0]);
- t.deepEqual(getKeyIDs(pre), testResult[1]);
- t.deepEqual(getKeyIDs(node), testResult[2]);
- t.end();
- });
- test('downMove Node: ', function (t) {
- t.plan(3);
- var testNodeID = 13431;
- var testResult = [[13429, 13427, 13430], [13430, 13427, 13431], [13431, 13427, 13432]];
- var node = testTree.findNode(testNodeID), pre = node.preSibling, next = node.nextSibling;
- node.downMove();
- t.deepEqual(getKeyIDs(pre), testResult[0]);
- t.deepEqual(getKeyIDs(next), testResult[1]);
- t.deepEqual(getKeyIDs(node), testResult[2]);
- t.end();
- });
- test('upLevel Node: ', function (t) {
- t.plan(4);
- var testNodeID = 13431;
- var node = testTree.findNode(testNodeID), orgPre = node.preSibling, orgNext = node.nextSibling, orgParent = node.parent;
- var orgChildrenCount = node.children.length, orgNextSiblingCount = orgParent.children.length - node.siblingIndex() - 1;
- node.upLevel();
- t.equal(orgNext.parent, node);
- t.equal(node.children.length, orgChildrenCount + orgNextSiblingCount);
- t.equal(orgPre.nextSibling, null);
- t.equal(orgParent.nextSibling, node);
- t.end();
- });
- test('downLevel Node: ', function (t) {
- t.plan(4);
- var testNodeID = 13431;
- var node = testTree.findNode(testNodeID), orgPre = node.preSibling, orgNext = node.nextSibling, orgParent = node.parent;
- var newPre = orgPre.lastChild();
- node.downLevel();
- t.equal(orgPre.nextSibling, orgNext);
- t.equal(orgPre.lastChild(), node);
- t.equal(newPre.nextSibling, node);
- t.equal(node.nextSibling, null);
- t.end();
- });
- test('insert Node: ', function (t) {
- t.plan(5);
- var parent = testTree.findNode(13574), next = testTree.findNode(13598);
- var orgTreeCount = testTree.count(), orgParentChildrenCount = parent.children.length, orgNextPre = next.preSibling;
- var newNode = testTree.insert(parent.getID(), next.getID());
- t.equal(testTree.count(), orgTreeCount + 1);
- t.equal(parent.children.length, orgParentChildrenCount + 1);
- t.equal(orgNextPre.nextSibling, newNode);
- t.equal(newNode.parent, parent);
- t.equal(newNode.nextSibling, next);
- t.end();
- });
- test('delete Node: ', function (t) {
- t.plan(3);
- var testNodeID = 13598;
- var node = testTree.findNode(testNodeID), orgParent = node.parent, orgPre = node.preSibling, orgNext = node.nextSibling;
- var orgTreeCount = testTree.count(), orgParentChildrenCount = orgParent.children.length;
- testTree.delete(node);
- t.equal(testTree.count(), orgTreeCount - node.posterityCount() - 1);
- t.equal(orgParent.children.length, orgParentChildrenCount - 1);
- t.equal(orgPre.nextSibling, orgNext);
- t.end();
- });
|