storage_integration.rs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. use super::initial_test_ext;
  2. use crate::integration::storage::StorageProviderHelper;
  3. use crate::Runtime;
  4. use frame_support::StorageMap;
  5. use working_group::{Instance2, Worker};
  6. #[test]
  7. fn storage_provider_helper_succeeds() {
  8. initial_test_ext().execute_with(|| {
  9. // Bug in random module requires move the initial block number.
  10. <system::Module<Runtime>>::set_block_number(1);
  11. // Error - no workers.
  12. let random_provider_result = <StorageProviderHelper
  13. as storage::data_directory::StorageProviderHelper<Runtime>>::get_random_storage_provider();
  14. assert!(random_provider_result.is_err());
  15. let worker_id1 = 1;
  16. let worker_id2 = 7;
  17. let worker_id3 = 19;
  18. <working_group::WorkerById<Runtime, Instance2>>::insert(worker_id1, Worker::default());
  19. <working_group::WorkerById<Runtime, Instance2>>::insert(worker_id2, Worker::default());
  20. <working_group::WorkerById<Runtime, Instance2>>::insert(worker_id3, Worker::default());
  21. // Still error - not registered in the service discovery.
  22. let random_provider_result = <StorageProviderHelper as storage::data_directory::StorageProviderHelper<Runtime>>::get_random_storage_provider();
  23. assert!(random_provider_result.is_err());
  24. let account_info = service_discovery::ServiceProviderRecord{
  25. identity: Vec::new(),
  26. expires_at: 1000
  27. };
  28. <service_discovery::AccountInfoByStorageProviderId<Runtime>>::insert(worker_id1,account_info.clone());
  29. <service_discovery::AccountInfoByStorageProviderId<Runtime>>::insert(worker_id2,account_info.clone());
  30. <service_discovery::AccountInfoByStorageProviderId<Runtime>>::insert(worker_id3,account_info);
  31. // Should work now.
  32. let worker_ids = vec![worker_id1, worker_id2, worker_id3];
  33. let random_provider_id = <StorageProviderHelper as storage::data_directory::StorageProviderHelper<Runtime>>::get_random_storage_provider().unwrap();
  34. assert!(worker_ids.contains(&random_provider_id));
  35. });
  36. }