@@ -53,11 +53,6 @@ impl WhitelistManager {
5353 self . in_memory_whitelist . remove ( info_hash) . await
5454 }
5555
56- /// It checks if a torrent is whitelisted.
57- pub async fn is_info_hash_whitelisted ( & self , info_hash : & InfoHash ) -> bool {
58- self . in_memory_whitelist . contains ( info_hash) . await
59- }
60-
6156 /// It loads the whitelist from the database.
6257 ///
6358 /// # Errors
@@ -81,17 +76,41 @@ mod tests {
8176
8277 use std:: sync:: Arc ;
8378
84- use torrust_tracker_test_helpers :: configuration ;
79+ use torrust_tracker_configuration :: Core ;
8580
81+ use crate :: core_tests:: ephemeral_configuration_for_listed_tracker;
82+ use crate :: databases:: setup:: initialize_database;
83+ use crate :: databases:: Database ;
8684 use crate :: whitelist:: manager:: WhitelistManager ;
87- use crate :: whitelist:: whitelist_tests:: initialize_whitelist_services;
85+ use crate :: whitelist:: repository:: in_memory:: InMemoryWhitelist ;
86+ use crate :: whitelist:: repository:: persisted:: DatabaseWhitelist ;
8887
89- fn initialize_whitelist_manager_for_whitelisted_tracker ( ) -> Arc < WhitelistManager > {
90- let config = configuration:: ephemeral_listed ( ) ;
88+ struct WhitelistManagerDeps {
89+ pub _database : Arc < Box < dyn Database > > ,
90+ pub _database_whitelist : Arc < DatabaseWhitelist > ,
91+ pub in_memory_whitelist : Arc < InMemoryWhitelist > ,
92+ }
9193
92- let ( _whitelist_authorization, whitelist_manager) = initialize_whitelist_services ( & config) ;
94+ fn initialize_whitelist_manager_for_whitelisted_tracker ( ) -> ( Arc < WhitelistManager > , Arc < WhitelistManagerDeps > ) {
95+ let config = ephemeral_configuration_for_listed_tracker ( ) ;
96+ initialize_whitelist_manager_and_deps ( & config)
97+ }
9398
94- whitelist_manager
99+ fn initialize_whitelist_manager_and_deps ( config : & Core ) -> ( Arc < WhitelistManager > , Arc < WhitelistManagerDeps > ) {
100+ let database = initialize_database ( config) ;
101+ let database_whitelist = Arc :: new ( DatabaseWhitelist :: new ( database. clone ( ) ) ) ;
102+ let in_memory_whitelist = Arc :: new ( InMemoryWhitelist :: default ( ) ) ;
103+
104+ let whitelist_manager = Arc :: new ( WhitelistManager :: new ( database_whitelist. clone ( ) , in_memory_whitelist. clone ( ) ) ) ;
105+
106+ (
107+ whitelist_manager,
108+ Arc :: new ( WhitelistManagerDeps {
109+ _database : database,
110+ _database_whitelist : database_whitelist,
111+ in_memory_whitelist,
112+ } ) ,
113+ )
95114 }
96115
97116 mod configured_as_whitelisted {
@@ -102,26 +121,26 @@ mod tests {
102121
103122 #[ tokio:: test]
104123 async fn it_should_add_a_torrent_to_the_whitelist ( ) {
105- let whitelist_manager = initialize_whitelist_manager_for_whitelisted_tracker ( ) ;
124+ let ( whitelist_manager, services ) = initialize_whitelist_manager_for_whitelisted_tracker ( ) ;
106125
107126 let info_hash = sample_info_hash ( ) ;
108127
109128 whitelist_manager. add_torrent_to_whitelist ( & info_hash) . await . unwrap ( ) ;
110129
111- assert ! ( whitelist_manager . is_info_hash_whitelisted ( & info_hash) . await ) ;
130+ assert ! ( services . in_memory_whitelist . contains ( & info_hash) . await ) ;
112131 }
113132
114133 #[ tokio:: test]
115134 async fn it_should_remove_a_torrent_from_the_whitelist ( ) {
116- let whitelist_manager = initialize_whitelist_manager_for_whitelisted_tracker ( ) ;
135+ let ( whitelist_manager, services ) = initialize_whitelist_manager_for_whitelisted_tracker ( ) ;
117136
118137 let info_hash = sample_info_hash ( ) ;
119138
120139 whitelist_manager. add_torrent_to_whitelist ( & info_hash) . await . unwrap ( ) ;
121140
122141 whitelist_manager. remove_torrent_from_whitelist ( & info_hash) . await . unwrap ( ) ;
123142
124- assert ! ( !whitelist_manager . is_info_hash_whitelisted ( & info_hash) . await ) ;
143+ assert ! ( !services . in_memory_whitelist . contains ( & info_hash) . await ) ;
125144 }
126145
127146 mod persistence {
@@ -130,19 +149,19 @@ mod tests {
130149
131150 #[ tokio:: test]
132151 async fn it_should_load_the_whitelist_from_the_database ( ) {
133- let whitelist_manager = initialize_whitelist_manager_for_whitelisted_tracker ( ) ;
152+ let ( whitelist_manager, services ) = initialize_whitelist_manager_for_whitelisted_tracker ( ) ;
134153
135154 let info_hash = sample_info_hash ( ) ;
136155
137156 whitelist_manager. add_torrent_to_whitelist ( & info_hash) . await . unwrap ( ) ;
138157
139158 whitelist_manager. remove_torrent_from_memory_whitelist ( & info_hash) . await ;
140159
141- assert ! ( !whitelist_manager . is_info_hash_whitelisted ( & info_hash) . await ) ;
160+ assert ! ( !services . in_memory_whitelist . contains ( & info_hash) . await ) ;
142161
143162 whitelist_manager. load_whitelist_from_database ( ) . await . unwrap ( ) ;
144163
145- assert ! ( whitelist_manager . is_info_hash_whitelisted ( & info_hash) . await ) ;
164+ assert ! ( services . in_memory_whitelist . contains ( & info_hash) . await ) ;
146165 }
147166 }
148167 }
0 commit comments