()
| 500 | |
| 501 | #[test] |
| 502 | fn test_kg_edge_crud() { |
| 503 | let dir = tempdir().unwrap(); |
| 504 | let pristine = Pristine::open(dir.path().join("db")).unwrap(); |
| 505 | let mut txn = pristine.write_txn().unwrap(); |
| 506 | txn.init_kg().unwrap(); |
| 507 | |
| 508 | // Create nodes |
| 509 | txn.upsert_kg_node(&KgNode::new("change:abc", "change", "abc", "graph")) |
| 510 | .unwrap(); |
| 511 | txn.upsert_kg_node(&KgNode::new("file:auth.rs", "file", "auth.rs", "graph")) |
| 512 | .unwrap(); |
| 513 | txn.upsert_kg_node(&KgNode::new("file:main.rs", "file", "main.rs", "graph")) |
| 514 | .unwrap(); |
| 515 | |
| 516 | // Create edges |
| 517 | txn.upsert_kg_edge(&KgEdge::new("change:abc", "file:auth.rs", "MODIFIES")) |
| 518 | .unwrap(); |
| 519 | txn.upsert_kg_edge(&KgEdge::new("change:abc", "file:main.rs", "MODIFIES")) |
| 520 | .unwrap(); |
| 521 | |
| 522 | // Query outgoing |
| 523 | let outgoing = txn.get_kg_edges_from("change:abc").unwrap(); |
| 524 | assert_eq!(outgoing.len(), 2); |
| 525 | |
| 526 | // Query incoming |
| 527 | let incoming = txn.get_kg_edges_to("file:auth.rs").unwrap(); |
| 528 | assert_eq!(incoming.len(), 1); |
| 529 | assert_eq!(incoming[0].from_id, "change:abc"); |
| 530 | |
| 531 | // Delete edge |
| 532 | assert!(txn |
| 533 | .del_kg_edge("change:abc", "file:auth.rs", "MODIFIES") |
| 534 | .unwrap()); |
| 535 | assert_eq!(txn.get_kg_edges_from("change:abc").unwrap().len(), 1); |
| 536 | |
| 537 | // Counts |
| 538 | assert_eq!(txn.count_kg_nodes().unwrap(), 3); |
| 539 | assert_eq!(txn.count_kg_edges().unwrap(), 1); |
| 540 | |
| 541 | txn.commit().unwrap(); |
| 542 | } |
| 543 | |
| 544 | #[test] |
| 545 | fn test_kg_neighbors() { |
nothing calls this directly
no test coverage detected