var assert = require('assert'), fs = require('fs'), dot = require('../lib/network/dotparser.js'); describe('dotparser', function () { it('should parse a DOT file into JSON', function (done) { fs.readFile('test/dot.txt', function (err, data) { data = String(data); var graph = dot.parseDOT(data); assert.deepEqual(graph, { "type": "digraph", "id": "test_graph", "rankdir": "LR", "size": "8,5", "font": "arial", "nodes": [ { "id": "node1", "attr": { "shape": "doublecircle" } }, { "id": "node2", "attr": { "shape": "doublecircle" } }, { "id": "node3", "attr": { "shape": "doublecircle" } }, { "id": "node4", "attr": { "shape": "diamond", "color": "red" } }, { "id": "node5", "attr": { "shape": "square", "color": "blue", "width": 3 } }, { "id": 6, "attr": { "shape": "circle" } }, { "id": "A", "attr": { "shape": "circle" } }, { "id": "B", "attr": { "shape": "circle" } }, { "id": "C", "attr": { "shape": "circle" } } ], "edges": [ { "from": "node1", "to": "node1", "type": "->", "attr": { "length": 170, "fontSize": 12, "label": "a" } }, { "from": "node2", "to": "node3", "type": "->", "attr": { "length": 170, "fontSize": 12, "label": "b" } }, { "from": "node1", "to": "node4", "type": "--", "attr": { "length": 170, "fontSize": 12, "label": "c" } }, { "from": "node3", "to": "node4", "type": "->", "attr": { "length": 170, "fontSize": 12, "label": "d" } }, { "from": "node4", "to": "node5", "type": "->", "attr": { "length": 170, "fontSize": 12 } }, { "from": "node5", "to": 6, "type": "->", "attr": { "length": 170, "fontSize": 12 } }, { "from": "A", "to": { "nodes": [ { "id": "B", "attr": { "shape": "circle" } }, { "id": "C", "attr": { "shape": "circle" } } ] }, "type": "->", "attr": { "length": 170, "fontSize": 12 } } ], "subgraphs": [ { "nodes": [ { "id": "B", "attr": { "shape": "circle" } }, { "id": "C", "attr": { "shape": "circle" } } ] } ] }); done(); }); }); });