mod test_db;
use agdb::DbElement;
use agdb::DbId;
use agdb::QueryBuilder;
use test_db::TestDb;
#[test]
fn remove_values_ids() {
let mut db = TestDb::new();
db.exec_mut(
QueryBuilder::insert()
.nodes()
.aliases(["alias", "alias2"])
.values_uniform([("key1", "value1").into()])
.query(),
2,
);
db.exec_elements(
QueryBuilder::select().ids(["alias", "alias2"]).query(),
&[
DbElement {
id: DbId(1),
from: None,
to: None,
values: vec![("key1", "value1").into()],
},
DbElement {
id: DbId(2),
from: None,
to: None,
values: vec![("key1", "value1").into()],
},
],
);
db.exec_mut(
QueryBuilder::remove()
.values("key1")
.ids(["alias", "alias2"])
.query(),
-2,
);
db.exec_elements(
QueryBuilder::select().ids(["alias", "alias2"]).query(),
&[
DbElement {
id: DbId(1),
from: None,
to: None,
values: vec![],
},
DbElement {
id: DbId(2),
from: None,
to: None,
values: vec![],
},
],
);
}
#[test]
fn remove_values_search() {
let mut db = TestDb::new();
db.exec_mut(
QueryBuilder::insert()
.nodes()
.values([[("key", 1).into()], [("key", 2).into()]])
.query(),
2,
);
db.exec_mut(QueryBuilder::insert().edges().from(1).to(2).query(), 1);
db.exec_mut(
QueryBuilder::remove()
.values("key")
.ids(QueryBuilder::search().from(1).query())
.query(),
-2,
);
db.exec_elements(
QueryBuilder::select().ids([1, 2]).query(),
&[
DbElement {
id: DbId(1),
from: None,
to: None,
values: vec![],
},
DbElement {
id: DbId(2),
from: None,
to: None,
values: vec![],
},
],
);
}
#[test]
fn remove_values_search_alt() {
let mut db = TestDb::new();
db.exec_mut(
QueryBuilder::insert()
.nodes()
.values([[("key", 1).into()], [("key", 2).into()]])
.query(),
2,
);
db.exec_mut(QueryBuilder::insert().edges().from(1).to(2).query(), 1);
db.exec_mut(
QueryBuilder::remove()
.values("key")
.search()
.from(1)
.query(),
-2,
);
db.exec_elements(
QueryBuilder::select().ids([1, 2]).query(),
&[
DbElement {
id: DbId(1),
from: None,
to: None,
values: vec![],
},
DbElement {
id: DbId(2),
from: None,
to: None,
values: vec![],
},
],
);
}
#[test]
fn remove_missing_key() {
let mut db = TestDb::new();
db.exec_mut(
QueryBuilder::insert()
.nodes()
.aliases(["alias", "alias2"])
.values_uniform([("key1", "value1").into(), ("key2", 100).into()])
.query(),
2,
);
db.exec_mut(
QueryBuilder::remove()
.values("key3")
.ids(["alias", "alias2"])
.query(),
0,
);
db.exec_elements(
QueryBuilder::select().ids(["alias", "alias2"]).query(),
&[
DbElement {
id: DbId(1),
from: None,
to: None,
values: vec![("key1", "value1").into(), ("key2", 100).into()],
},
DbElement {
id: DbId(2),
from: None,
to: None,
values: vec![("key1", "value1").into(), ("key2", 100).into()],
},
],
);
}