Skip to content

Commit 78b5aae

Browse files
committed
Add tests for the new methods
1 parent 6cb1d80 commit 78b5aae

2 files changed

Lines changed: 267 additions & 163 deletions

File tree

core/src/graph/mod.rs

Lines changed: 1 addition & 163 deletions
Original file line numberDiff line numberDiff line change
@@ -1125,166 +1125,4 @@ impl<CT: ComponentType> Graph<CT> {
11251125
}
11261126

11271127
#[cfg(test)]
1128-
mod tests {
1129-
1130-
use super::*;
1131-
use crate::types::{AnnoKey, Annotation, DefaultComponentType, Edge};
1132-
1133-
#[test]
1134-
fn create_writeable_gs() {
1135-
let mut db = Graph::<DefaultComponentType>::new(false).unwrap();
1136-
1137-
let anno_key = AnnoKey {
1138-
ns: "test".into(),
1139-
name: "edge_anno".into(),
1140-
};
1141-
let anno_val = "testValue".into();
1142-
1143-
let component = Component::new(DefaultComponentType::Edge, "test".into(), "dep".into());
1144-
let gs: &mut dyn WriteableGraphStorage = db.get_or_create_writable(&component).unwrap();
1145-
1146-
gs.add_edge(Edge {
1147-
source: 0,
1148-
target: 1,
1149-
})
1150-
.unwrap();
1151-
1152-
gs.add_edge_annotation(
1153-
Edge {
1154-
source: 0,
1155-
target: 1,
1156-
},
1157-
Annotation {
1158-
key: anno_key,
1159-
val: anno_val,
1160-
},
1161-
)
1162-
.unwrap();
1163-
}
1164-
1165-
#[test]
1166-
fn load_existing_graph_storage() {
1167-
let mut db = Graph::<DefaultComponentType>::new(false).unwrap();
1168-
1169-
let component = Component::new(DefaultComponentType::Edge, "test".into(), "dep".into());
1170-
db.get_or_create_writable(&component).unwrap();
1171-
1172-
let tmp = tempfile::tempdir().unwrap();
1173-
1174-
db.save_to(tmp.path()).unwrap();
1175-
1176-
let mut db = Graph::new(false).unwrap();
1177-
db.open(tmp.path()).unwrap();
1178-
assert_eq!(1, db.components.len());
1179-
let gs = db.components.get(&component);
1180-
assert_eq!(true, gs.is_some());
1181-
assert_eq!(false, gs.unwrap().is_some());
1182-
1183-
db.ensure_loaded(&component).unwrap();
1184-
assert_eq!(1, db.components.len());
1185-
let gs = db.components.get(&component);
1186-
assert_eq!(true, gs.is_some());
1187-
assert_eq!(true, gs.unwrap().is_some());
1188-
}
1189-
1190-
#[test]
1191-
fn load_existing_graph_storage_parallel() {
1192-
let mut db = Graph::<DefaultComponentType>::new(false).unwrap();
1193-
1194-
let component = Component::new(DefaultComponentType::Edge, "test".into(), "dep".into());
1195-
db.get_or_create_writable(&component).unwrap();
1196-
1197-
let tmp = tempfile::tempdir().unwrap();
1198-
1199-
db.save_to(tmp.path()).unwrap();
1200-
1201-
let mut db = Graph::new(false).unwrap();
1202-
db.open(tmp.path()).unwrap();
1203-
assert_eq!(1, db.components.len());
1204-
let gs = db.components.get(&component);
1205-
assert_eq!(true, gs.is_some());
1206-
assert_eq!(false, gs.unwrap().is_some());
1207-
1208-
db.ensure_loaded_parallel(&[component.clone()]).unwrap();
1209-
assert_eq!(1, db.components.len());
1210-
let gs = db.components.get(&component);
1211-
assert_eq!(true, gs.is_some());
1212-
assert_eq!(true, gs.unwrap().is_some());
1213-
}
1214-
1215-
#[test]
1216-
fn load_non_existing_graph_storage_parallel() {
1217-
let mut db = Graph::<DefaultComponentType>::new(false).unwrap();
1218-
1219-
let component = Component::new(DefaultComponentType::Edge, "test".into(), "dep".into());
1220-
1221-
let tmp = tempfile::tempdir().unwrap();
1222-
1223-
db.save_to(tmp.path()).unwrap();
1224-
1225-
let mut db = Graph::new(false).unwrap();
1226-
db.open(tmp.path()).unwrap();
1227-
1228-
db.ensure_loaded_parallel(&[component]).unwrap();
1229-
assert_eq!(0, db.components.len());
1230-
}
1231-
1232-
#[test]
1233-
fn load_with_wal_file() {
1234-
let mut db = Graph::<DefaultComponentType>::new(false).unwrap();
1235-
let example_node = 0;
1236-
db.node_annos
1237-
.insert(
1238-
example_node,
1239-
Annotation {
1240-
key: NODE_TYPE_KEY.as_ref().clone(),
1241-
val: "corpus".into(),
1242-
},
1243-
)
1244-
.unwrap();
1245-
db.node_annos
1246-
.insert(
1247-
example_node,
1248-
Annotation {
1249-
key: NODE_NAME_KEY.as_ref().clone(),
1250-
val: "root".into(),
1251-
},
1252-
)
1253-
.unwrap();
1254-
1255-
let tmp = tempfile::tempdir().unwrap();
1256-
// Save and remember the location, so that updates are recorded in a WAL
1257-
// file
1258-
db.persist_to(tmp.path()).unwrap();
1259-
1260-
// Add an node annotation with apply_update
1261-
let mut u = GraphUpdate::new();
1262-
u.add_event(UpdateEvent::AddNodeLabel {
1263-
node_name: "root".into(),
1264-
anno_ns: "example".into(),
1265-
anno_name: "anno-name".into(),
1266-
anno_value: "anno-value".into(),
1267-
})
1268-
.unwrap();
1269-
db.apply_update(&mut u, |_| {}).unwrap();
1270-
1271-
std::mem::drop(db);
1272-
1273-
// Check that loading the database again contains the changes
1274-
let mut db = Graph::<DefaultComponentType>::new(false).unwrap();
1275-
db.open(tmp.path()).unwrap();
1276-
db.ensure_loaded_all().unwrap();
1277-
let anno_value = db
1278-
.node_annos
1279-
.get_value_for_item(
1280-
&example_node,
1281-
&AnnoKey {
1282-
name: "anno-name".into(),
1283-
ns: "example".into(),
1284-
},
1285-
)
1286-
.unwrap()
1287-
.unwrap();
1288-
assert_eq!("anno-value", anno_value);
1289-
}
1290-
}
1128+
mod tests;

0 commit comments

Comments
 (0)