mirror of
https://gitlab.com/famedly/conduit.git
synced 2025-07-02 16:38:36 +00:00
test:add replace test and refactor for reduce specific test boilerplate
This commit is contained in:
parent
e770de3d3d
commit
326c345811
1 changed files with 43 additions and 22 deletions
|
@ -1,4 +1,6 @@
|
||||||
use crate::database::{abstraction::Tree, Config};
|
use crate::database::{abstraction::{DatabaseEngine, Tree}, Config};
|
||||||
|
use std::sync::Arc;
|
||||||
|
use tempfile::{Builder, TempDir};
|
||||||
|
|
||||||
fn insert_get(tree: &dyn Tree) {
|
fn insert_get(tree: &dyn Tree) {
|
||||||
let key = "key".as_bytes();
|
let key = "key".as_bytes();
|
||||||
|
@ -8,6 +10,19 @@ fn insert_get(tree: &dyn Tree) {
|
||||||
assert_eq!(read, Some(value.to_owned()));
|
assert_eq!(read, Some(value.to_owned()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn insert_get_replace(tree: &dyn Tree) {
|
||||||
|
let key = "key".as_bytes();
|
||||||
|
let value = "value".as_bytes();
|
||||||
|
tree.insert(key, value).unwrap();
|
||||||
|
let read = tree.get(key).unwrap();
|
||||||
|
assert_eq!(read, Some(value.to_owned()));
|
||||||
|
|
||||||
|
let value1 = "value1".as_bytes();
|
||||||
|
tree.insert(key, value1).unwrap();
|
||||||
|
let read = tree.get(key).unwrap();
|
||||||
|
assert_eq!(read, Some(value1.to_owned()));
|
||||||
|
}
|
||||||
|
|
||||||
fn insert_get_remove(tree: &dyn Tree) {
|
fn insert_get_remove(tree: &dyn Tree) {
|
||||||
let key = "key".as_bytes();
|
let key = "key".as_bytes();
|
||||||
let value = "value".as_bytes();
|
let value = "value".as_bytes();
|
||||||
|
@ -153,69 +168,75 @@ database_path = "{}"
|
||||||
.unwrap()
|
.unwrap()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Make sure to keep the reference of the tree returned values for
|
||||||
|
/// the length of the test, to avoid early cleanups that may create test issues
|
||||||
|
fn open_tree<T>(test_name: &str) -> (Arc<dyn Tree>, impl DatabaseEngine, TempDir)
|
||||||
|
where Arc<T>: DatabaseEngine
|
||||||
|
{
|
||||||
|
let db_folder = Builder::new().prefix(test_name).tempdir().unwrap();
|
||||||
|
let config = empty_config(db_folder.path().to_str().unwrap());
|
||||||
|
let instance = Arc::<T>::open(&config).unwrap();
|
||||||
|
let tree = instance.open_tree("test").unwrap();
|
||||||
|
(tree, instance, db_folder)
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(feature = "sqlite")]
|
#[cfg(feature = "sqlite")]
|
||||||
mod sqlite {
|
mod sqlite {
|
||||||
|
|
||||||
use super::*;
|
use super::*;
|
||||||
use crate::database::abstraction::{DatabaseEngine, Tree};
|
use crate::database::abstraction::sqlite::Engine;
|
||||||
use std::sync::Arc;
|
|
||||||
use tempfile::{Builder, TempDir};
|
|
||||||
|
|
||||||
/// Make sure to keep the reference of the tree returned values for
|
|
||||||
/// the length of the test, to avoid early cleanups that may create test issues
|
|
||||||
fn open_tree(test_name: &str) -> (Arc<dyn Tree>, impl DatabaseEngine, TempDir) {
|
|
||||||
let db_folder = Builder::new().prefix(test_name).tempdir().unwrap();
|
|
||||||
let config = empty_config(db_folder.path().to_str().unwrap());
|
|
||||||
let instance = Arc::<crate::database::abstraction::sqlite::Engine>::open(&config).unwrap();
|
|
||||||
let tree = instance.open_tree("test").unwrap();
|
|
||||||
(tree, instance, db_folder)
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn sqlite_insert_get() {
|
fn sqlite_insert_get() {
|
||||||
let (tree, _inst, _temp_dir) = open_tree("insert_get");
|
let (tree, _inst, _temp_dir) = open_tree::<Engine>("sqlite_insert_get");
|
||||||
insert_get(&*tree)
|
insert_get(&*tree)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn sqlite_insert_replace_get() {
|
||||||
|
let (tree, _inst, _temp_dir) = open_tree::<Engine>("sqlite_insert_get_replace");
|
||||||
|
insert_get_replace(&*tree)
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn sqlite_insert_get_remove() {
|
fn sqlite_insert_get_remove() {
|
||||||
let (tree, _inst, _temp_dir) = open_tree("insert_get_remove");
|
let (tree, _inst, _temp_dir) = open_tree::<Engine>("sqlite_insert_get_remove");
|
||||||
insert_get_remove(&*tree)
|
insert_get_remove(&*tree)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn sqlite_batch_insert_get() {
|
fn sqlite_batch_insert_get() {
|
||||||
let (tree, _inst, _temp_dir) = open_tree("batch_insert_get");
|
let (tree, _inst, _temp_dir) = open_tree::<Engine>("sqlite_batch_insert_get");
|
||||||
batch_insert_get(&*tree)
|
batch_insert_get(&*tree)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn sqlite_insert_iter() {
|
fn sqlite_insert_iter() {
|
||||||
let (tree, _inst, _temp_dir) = open_tree("insert_iter");
|
let (tree, _inst, _temp_dir) = open_tree::<Engine>("sqlite_insert_iter");
|
||||||
insert_iter(&*tree)
|
insert_iter(&*tree)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn sqlite_insert_iter_from() {
|
fn sqlite_insert_iter_from() {
|
||||||
let (tree, _inst, _temp_dir) = open_tree("insert_iter_from");
|
let (tree, _inst, _temp_dir) = open_tree::<Engine>("sqlite_insert_iter_from");
|
||||||
insert_iter_from(&*tree)
|
insert_iter_from(&*tree)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn sqlite_insert_iter_prefix() {
|
fn sqlite_insert_iter_prefix() {
|
||||||
let (tree, _inst, _temp_dir) = open_tree("insert_iter_prefix");
|
let (tree, _inst, _temp_dir) = open_tree::<Engine>("sqlite_insert_iter_prefix");
|
||||||
insert_iter_prefix(&*tree)
|
insert_iter_prefix(&*tree)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn sqlite_insert_clear() {
|
fn sqlite_insert_clear() {
|
||||||
let (tree, _inst, _temp_dir) = open_tree("insert_iter_prefix");
|
let (tree, _inst, _temp_dir) = open_tree::<Engine>("sqlite_insert_iter_prefix");
|
||||||
insert_clear(&*tree)
|
insert_clear(&*tree)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn sqlite_increment() {
|
fn sqlite_increment() {
|
||||||
let (tree, _inst, _temp_dir) = open_tree("increment");
|
let (tree, _inst, _temp_dir) = open_tree::<Engine>("sqlite_increment");
|
||||||
increment(&*tree)
|
increment(&*tree)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue