@@ -53,11 +53,6 @@ impl WhitelistManager {
53
53
self . in_memory_whitelist . remove ( info_hash) . await
54
54
}
55
55
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
-
61
56
/// It loads the whitelist from the database.
62
57
///
63
58
/// # Errors
@@ -81,17 +76,41 @@ mod tests {
81
76
82
77
use std:: sync:: Arc ;
83
78
84
- use torrust_tracker_test_helpers :: configuration ;
79
+ use torrust_tracker_configuration :: Core ;
85
80
81
+ use crate :: core_tests:: ephemeral_configuration_for_listed_tracker;
82
+ use crate :: databases:: setup:: initialize_database;
83
+ use crate :: databases:: Database ;
86
84
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 ;
88
87
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
+ }
91
93
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
+ }
93
98
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
+ )
95
114
}
96
115
97
116
mod configured_as_whitelisted {
@@ -102,26 +121,26 @@ mod tests {
102
121
103
122
#[ tokio:: test]
104
123
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 ( ) ;
106
125
107
126
let info_hash = sample_info_hash ( ) ;
108
127
109
128
whitelist_manager. add_torrent_to_whitelist ( & info_hash) . await . unwrap ( ) ;
110
129
111
- assert ! ( whitelist_manager . is_info_hash_whitelisted ( & info_hash) . await ) ;
130
+ assert ! ( services . in_memory_whitelist . contains ( & info_hash) . await ) ;
112
131
}
113
132
114
133
#[ tokio:: test]
115
134
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 ( ) ;
117
136
118
137
let info_hash = sample_info_hash ( ) ;
119
138
120
139
whitelist_manager. add_torrent_to_whitelist ( & info_hash) . await . unwrap ( ) ;
121
140
122
141
whitelist_manager. remove_torrent_from_whitelist ( & info_hash) . await . unwrap ( ) ;
123
142
124
- assert ! ( !whitelist_manager . is_info_hash_whitelisted ( & info_hash) . await ) ;
143
+ assert ! ( !services . in_memory_whitelist . contains ( & info_hash) . await ) ;
125
144
}
126
145
127
146
mod persistence {
@@ -130,19 +149,19 @@ mod tests {
130
149
131
150
#[ tokio:: test]
132
151
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 ( ) ;
134
153
135
154
let info_hash = sample_info_hash ( ) ;
136
155
137
156
whitelist_manager. add_torrent_to_whitelist ( & info_hash) . await . unwrap ( ) ;
138
157
139
158
whitelist_manager. remove_torrent_from_memory_whitelist ( & info_hash) . await ;
140
159
141
- assert ! ( !whitelist_manager . is_info_hash_whitelisted ( & info_hash) . await ) ;
160
+ assert ! ( !services . in_memory_whitelist . contains ( & info_hash) . await ) ;
142
161
143
162
whitelist_manager. load_whitelist_from_database ( ) . await . unwrap ( ) ;
144
163
145
- assert ! ( whitelist_manager . is_info_hash_whitelisted ( & info_hash) . await ) ;
164
+ assert ! ( services . in_memory_whitelist . contains ( & info_hash) . await ) ;
146
165
}
147
166
}
148
167
}
0 commit comments