فهرست منبع

store: create test_remove() unit test

lunar-mining 2 سال پیش
والد
کامیت
576afd574d
1فایلهای تغییر یافته به همراه44 افزوده شده و 1 حذف شده
  1. 44 1
      src/net/hosts/store.rs

+ 44 - 1
src/net/hosts/store.rs

@@ -1063,9 +1063,12 @@ impl Hosts {
 #[cfg(test)]
 #[cfg(test)]
 mod tests {
 mod tests {
     use super::{
     use super::{
-        super::super::{settings::Settings, P2p},
+        super::{
+            super::{settings::Settings, P2p},
+        },
         *,
         *,
     };
     };
+    use crate::system::sleep;
     use smol::Executor;
     use smol::Executor;
     use std::{sync::Arc, time::UNIX_EPOCH};
     use std::{sync::Arc, time::UNIX_EPOCH};
 
 
@@ -1206,6 +1209,46 @@ mod tests {
         });
         });
     }
     }
 
 
+    #[test]
+    fn test_remove() {
+        smol::block_on(async {
+            let settings = Settings {
+                outbound_connections: 8,
+                allowed_transports: vec!["tcp".to_string()],
+                ..Default::default()
+            };
+            let hosts = Hosts::new(Arc::new(settings.clone()));
+
+            let url = Url::parse("tcp://dark.renaissance:333").unwrap();
+            let last_seen = UNIX_EPOCH.elapsed().unwrap().as_secs();
+
+            hosts.whitelist_store(url.clone(), last_seen).await;
+
+            sleep(1).await;
+
+            let url = Url::parse("tcp://milady:333").unwrap();
+            let last_seen = UNIX_EPOCH.elapsed().unwrap().as_secs();
+
+            hosts.whitelist_store(url.clone(), last_seen).await;
+
+            sleep(1).await;
+
+            let url = Url::parse("tcp://king-ted:333").unwrap();
+            let last_seen = UNIX_EPOCH.elapsed().unwrap().as_secs();
+
+            hosts.whitelist_store(url.clone(), last_seen).await;
+            for (url, last_seen) in hosts.whitelist.read().await.iter() {
+                println!("{}, {}", url, last_seen);
+            }
+
+            let position = hosts.get_whitelist_index_at_addr(url.clone()).await.unwrap();
+            hosts.whitelist_remove(&url, position).await;
+            for (url, last_seen) in hosts.whitelist.read().await.iter() {
+                println!("{}, {}", url, last_seen);
+            }
+        });
+    }
+
     #[test]
     #[test]
     fn test_fetch_address() {
     fn test_fetch_address() {
         smol::block_on(async {
         smol::block_on(async {