MCPcopy Create free account
hub / github.com/dfinity/orbit / test_remove

Function test_remove

core/station/impl/src/services/named_rule.rs:315–383  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

313
314 #[test]
315 fn test_remove() {
316 let named_rule = NamedRule {
317 id: [0; 16],
318 name: "test".to_string(),
319 description: Some("test description".to_string()),
320 rule: RequestPolicyRule::AutoApproved,
321 };
322 NAMED_RULE_REPOSITORY.insert(named_rule.key(), named_rule.clone());
323
324 // Attempt to remove the named rule that is not in use
325 let result = NAMED_RULE_SERVICE.remove(crate::models::RemoveNamedRuleOperationInput {
326 named_rule_id: named_rule.id,
327 });
328 assert!(result.is_ok());
329
330 // Insert the named rule again
331 NAMED_RULE_REPOSITORY.insert(named_rule.key(), named_rule.clone());
332
333 // Simulate the named rule being in use by another rule
334 let in_use_rule = NamedRule {
335 id: [1; 16],
336 name: "in use".to_string(),
337 description: Some("in use description".to_string()),
338 rule: RequestPolicyRule::NamedRule(named_rule.id),
339 };
340 NAMED_RULE_REPOSITORY.insert(in_use_rule.key(), in_use_rule.clone());
341
342 // Attempt to remove the named rule that is in use
343 let result = NAMED_RULE_SERVICE.remove(crate::models::RemoveNamedRuleOperationInput {
344 named_rule_id: named_rule.id,
345 });
346
347 assert_eq!(
348 result
349 .expect_err("The named rule should not be removed because it is in use.")
350 .code,
351 "IN_USE"
352 );
353
354 NAMED_RULE_REPOSITORY.remove(&in_use_rule.key());
355
356 let policy = RequestPolicy {
357 id: [0; 16],
358 rule: RequestPolicyRule::NamedRule(named_rule.id),
359 specifier: crate::models::request_specifier::RequestSpecifier::AddUser,
360 };
361
362 REQUEST_POLICY_REPOSITORY.insert(policy.key(), policy.clone());
363
364 // Attempt to remove the named rule that is in use
365 let result = NAMED_RULE_SERVICE.remove(crate::models::RemoveNamedRuleOperationInput {
366 named_rule_id: named_rule.id,
367 });
368
369 assert_eq!(
370 result
371 .expect_err("The named rule should not be removed because it is in use.")
372 .code,

Callers

nothing calls this directly

Calls 4

NamedRuleClass · 0.50
insertMethod · 0.45
keyMethod · 0.45
removeMethod · 0.45

Tested by

no test coverage detected