Add tests to servercertdb
This commit is contained in:
@@ -1,12 +1,3 @@
|
|||||||
use actix::prelude::*;
|
|
||||||
use futures::SinkExt;
|
|
||||||
use thiserror::Error;
|
|
||||||
use tracing::{error, info};
|
|
||||||
use uuid::Uuid;
|
|
||||||
use libbonknet::*;
|
|
||||||
use crate::dataconnmanager::{DataConnManager, StartDataBridge};
|
|
||||||
use crate::streamutils::*;
|
|
||||||
|
|
||||||
//! Pending Data Connect Database is where we store the Data Connection in creation.
|
//! Pending Data Connect Database is where we store the Data Connection in creation.
|
||||||
//! Every row contains:
|
//! Every row contains:
|
||||||
//! - The ServerConnID that the server will use (uuid)
|
//! - The ServerConnID that the server will use (uuid)
|
||||||
@@ -17,6 +8,15 @@ use crate::streamutils::*;
|
|||||||
//! When a row contains a valid ServerSocket and ClientSocket, then the row is removed and the
|
//! When a row contains a valid ServerSocket and ClientSocket, then the row is removed and the
|
||||||
//! sockets moved to the Data Connection Manager
|
//! sockets moved to the Data Connection Manager
|
||||||
|
|
||||||
|
use actix::prelude::*;
|
||||||
|
use futures::SinkExt;
|
||||||
|
use thiserror::Error;
|
||||||
|
use tracing::{error, info};
|
||||||
|
use uuid::Uuid;
|
||||||
|
use libbonknet::*;
|
||||||
|
use crate::dataconnmanager::{DataConnManager, StartDataBridge};
|
||||||
|
use crate::streamutils::*;
|
||||||
|
|
||||||
#[derive(Error, Debug)]
|
#[derive(Error, Debug)]
|
||||||
pub enum PendingDataConnError {
|
pub enum PendingDataConnError {
|
||||||
#[error("Generic Failure")]
|
#[error("Generic Failure")]
|
||||||
|
|||||||
@@ -89,3 +89,62 @@ impl Handler<UnregisterServer> for ServerCertDB {
|
|||||||
self.db.remove(&msg.cert)
|
self.db.remove(&msg.cert)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
#[actix::test]
|
||||||
|
async fn emptydb_isnameregistered() {
|
||||||
|
let servercert_db = ServerCertDB::new().start();
|
||||||
|
assert!(!servercert_db.send(IsNameRegistered { name: "test".into() }).await.unwrap());
|
||||||
|
}
|
||||||
|
|
||||||
|
#[actix::test]
|
||||||
|
async fn emptyvec() {
|
||||||
|
let servercert_db = ServerCertDB::new().start();
|
||||||
|
assert!(servercert_db.send(RegisterServer { cert: vec![], name: "test".into() }).await.unwrap().is_ok());
|
||||||
|
assert!(servercert_db.send(IsNameRegistered { name: "test".into() }).await.unwrap());
|
||||||
|
assert_eq!(servercert_db.send(FetchName { cert: vec![] }).await.unwrap().unwrap(), "test");
|
||||||
|
assert_eq!(servercert_db.send(UnregisterServer { cert: vec![] }).await.unwrap().unwrap(), "test");
|
||||||
|
assert!(!servercert_db.send(IsNameRegistered { name: "test".into() }).await.unwrap());
|
||||||
|
assert!(servercert_db.send(FetchName { cert: vec![] }).await.unwrap().is_none());
|
||||||
|
assert!(servercert_db.send(UnregisterServer { cert: vec![] }).await.unwrap().is_none());
|
||||||
|
}
|
||||||
|
|
||||||
|
#[actix::test]
|
||||||
|
async fn normalcert() {
|
||||||
|
let servercert_db = ServerCertDB::new().start();
|
||||||
|
let cert = vec![112, 111, 114, 99, 111, 100, 105, 111];
|
||||||
|
assert!(servercert_db.send(RegisterServer { cert: cert.clone(), name: "test2".into() }).await.unwrap().is_ok());
|
||||||
|
assert!(servercert_db.send(IsNameRegistered { name: "test2".into() }).await.unwrap());
|
||||||
|
assert_eq!(servercert_db.send(FetchName { cert: cert.clone() }).await.unwrap().unwrap(), "test2");
|
||||||
|
assert_eq!(servercert_db.send(UnregisterServer { cert: cert.clone() }).await.unwrap().unwrap(), "test2");
|
||||||
|
assert!(!servercert_db.send(IsNameRegistered { name: "test2".into() }).await.unwrap());
|
||||||
|
assert!(servercert_db.send(FetchName { cert: cert.clone() }).await.unwrap().is_none());
|
||||||
|
assert!(servercert_db.send(UnregisterServer { cert: cert.clone() }).await.unwrap().is_none());
|
||||||
|
}
|
||||||
|
|
||||||
|
#[actix::test]
|
||||||
|
async fn cert2_remains_after_delete_cert1() {
|
||||||
|
let servercert_db = ServerCertDB::new().start();
|
||||||
|
let cert1 = vec![112, 111, 114, 99, 111, 100, 105, 111];
|
||||||
|
let cert2 = vec![67, 65, 78, 68, 69, 68, 73, 79];
|
||||||
|
assert!(servercert_db.send(RegisterServer { cert: cert1.clone(), name: "test3".into() }).await.unwrap().is_ok());
|
||||||
|
assert!(servercert_db.send(IsNameRegistered { name: "test3".into() }).await.unwrap());
|
||||||
|
assert_eq!(servercert_db.send(FetchName { cert: cert1.clone() }).await.unwrap().unwrap(), "test3");
|
||||||
|
|
||||||
|
assert!(servercert_db.send(RegisterServer { cert: cert2.clone(), name: "test4".into() }).await.unwrap().is_ok());
|
||||||
|
assert!(servercert_db.send(IsNameRegistered { name: "test4".into() }).await.unwrap());
|
||||||
|
assert_eq!(servercert_db.send(FetchName { cert: cert2.clone() }).await.unwrap().unwrap(), "test4");
|
||||||
|
|
||||||
|
assert_eq!(servercert_db.send(UnregisterServer { cert: cert1.clone() }).await.unwrap().unwrap(), "test3");
|
||||||
|
assert!(!servercert_db.send(IsNameRegistered { name: "test3".into() }).await.unwrap());
|
||||||
|
assert!(servercert_db.send(FetchName { cert: cert1.clone() }).await.unwrap().is_none());
|
||||||
|
assert!(servercert_db.send(UnregisterServer { cert: cert1.clone() }).await.unwrap().is_none());
|
||||||
|
|
||||||
|
assert!(servercert_db.send(RegisterServer { cert: cert2.clone(), name: "test4".into() }).await.unwrap().is_err());
|
||||||
|
assert!(servercert_db.send(IsNameRegistered { name: "test4".into() }).await.unwrap());
|
||||||
|
assert_eq!(servercert_db.send(FetchName { cert: cert2.clone() }).await.unwrap().unwrap(), "test4");
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user