/Tests/YEDGraphTest.j

http://github.com/rheimbuch/YED · Unknown · 65 lines · 51 code · 14 blank · 0 comment · 0 complexity · 6b3720da028475e366d5fffa6255f285 MD5 · raw file

  1. @import "../YEDGraph.j"
  2. @implementation YEDGraphTest : OJTestCase
  3. - (void)testYEDGraphShouldAllowYEDNodes
  4. {
  5. var graph = [YEDGraph graph],
  6. n1 = [YEDNode nodeWithName:"n1"],
  7. n2 = [YEDNode nodeWithName:"n2"];
  8. [self assertTrue:([graph allowsNode:n1])
  9. message:"Graph should allow n1"];
  10. [self assertTrue:([graph allowsNode:n2])
  11. message:"Graph should allow n2"];
  12. [graph addNode:n1];
  13. [graph addNode:n2];
  14. [self assertTrue:([graph containsNode:n1])
  15. message:"Graph should contain node n1"];
  16. [self assertTrue:([graph containsNode:n2])
  17. message:"Graph should contain node n2"];
  18. }
  19. - (void)testCreateDirectedEdge
  20. {
  21. var graph = [YEDGraph graph],
  22. n1 = [YEDNode nodeWithName:"n1"],
  23. n2 = [YEDNode nodeWithName:"n2"],
  24. n3 = [YEDNode nodeWithName:"n3"];
  25. // Add n1 and n2 to graph
  26. [graph addNode:n1];
  27. [graph addNode:n2];
  28. // Now create an edge between n1 -> n2
  29. [graph createDirectedEdgeFrom:n1 to:n2];
  30. // Edge n1 -> n2 should exist
  31. [self assertTrue:[n1 hasOutgoingEdgeTo:n2]
  32. message:"n1 should have outgoing edge to n2"];
  33. [self assertTrue:[n2 hasIncomingEdgeFrom:n1]
  34. message:"n2 should have incoming edge from n1"];
  35. // Creating an edge to n3 should fail because n3 is not in the graph
  36. try
  37. {
  38. [graph createDirectedEdgeFrom:n1 to:n3];
  39. }
  40. catch(err)
  41. {
  42. CPLog.info(err);
  43. }
  44. [self assertFalse:[n1 hasOutgoingEdgeTo:n3]
  45. message:"edge n1 -> n3 should not have been created"];
  46. [self assertFalse:[n3 hasIncomingEdgeFrom:n1]
  47. message:"edge n1 -> n3 should not have been created"];
  48. [self assertFalse:[graph containsNode:n3]
  49. message:"n3 should not been in the graph"];
  50. }
  51. @end