1
0
Fork 0

edges of a vertex will be removed, when vertex is removed

This commit is contained in:
gschwab 2014-05-20 15:35:09 +02:00
parent b1ce2058fd
commit 072b00c54b
2 changed files with 29 additions and 0 deletions

View File

@ -373,6 +373,21 @@ var Graph = function(graphName, edgeDefinitions, vertexCollections, edgeCollecti
_.each(vertexCollections, function(obj, key) {
self[key] = obj;
var old_remove = obj.remove.bind(obj);
obj.remove = function(vertexId, options) {
var myEdges = self._EDGES(vertexId);
myEdges.forEach(
function(edgeObj) {
var edgeId = edgeObj._id;
var edgeCollection = edgeId.split("/")[0];
if (db[edgeCollection] && db[edgeCollection].exists(edgeId)) {
db[edgeCollection].remove(edgeId);
}
}
);
return old_remove(vertexId, options);
}
});
_.each(edgeCollections, function(obj, key) {

View File

@ -830,6 +830,20 @@ function EdgesAndVerticesSuite() {
assertTrue(vertex);
},
test_vC_removeWithEdge : function () {
var vertex1 = g.unitTestVertexCollection1.save({first_name: "Tim"});
var vertexId1 = vertex1._id;
var vertex2 = g.unitTestVertexCollection1.save({first_name: "Tom"});
var vertexId2 = vertex2._id;
var edge = g.unitTestEdgeCollection1.save(vertexId1, vertexId2, {});
var edgeId = edge._id;
var result = g.unitTestVertexCollection1.remove(vertexId1);
assertTrue(result);
assertFalse(db.unitTestEdgeCollection1.exists(edgeId));
result = g.unitTestVertexCollection1.remove(vertexId2);
assertTrue(result);
},
test_eC_save_undirected : function() {
var vertex1 = g.unitTestVertexCollection1.save({first_name: "Tom"});
var vertexId1 = vertex1._id;