From 9c8873ff25d4c0f0080cbfbe9fddf6cd6a4f8e09 Mon Sep 17 00:00:00 2001 From: Swastik Patel Date: Thu, 19 Sep 2024 04:59:26 +0530 Subject: [PATCH] returning InvalidRatingValue error for revise function --- pallets/network-score/src/tests.rs | 89 ++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/pallets/network-score/src/tests.rs b/pallets/network-score/src/tests.rs index d5194bedb..5f1d44695 100644 --- a/pallets/network-score/src/tests.rs +++ b/pallets/network-score/src/tests.rs @@ -150,6 +150,95 @@ fn register_rating_with_invalid_data_should_fail() { }); } +#[test] +fn revise_rating_with_invalid_values_should_fail() { + let creator = DID_00.clone(); + let author = ACCOUNT_00.clone(); + + let message_id = BoundedVec::try_from([72u8; 10].to_vec()).unwrap(); + let entity_id = BoundedVec::try_from([73u8; 10].to_vec()).unwrap(); + let provider_id = BoundedVec::try_from([74u8; 10].to_vec()).unwrap(); + let entry = RatingInputEntryOf:: { + entity_id, + provider_id, + total_encoded_rating: 250u64, // Initially valid rating + count_of_txn: 7u64, // Initially valid transaction count + rating_type: RatingTypeOf::Overall, + provider_did: creator.clone(), + }; + let entry_digest = + ::Hashing::hash(&[&entry.encode()[..]].concat()[..]); + + let raw_space = [2u8; 256].to_vec(); + let space_digest = ::Hashing::hash(&raw_space.encode()[..]); + let space_id_digest = ::Hashing::hash( + &[&space_digest.encode()[..], &creator.encode()[..]].concat()[..], + ); + let space_id: SpaceIdOf = generate_space_id::(&space_id_digest); + + let auth_digest = ::Hashing::hash( + &[&space_id.encode()[..], &creator.encode()[..], &creator.encode()[..]].concat()[..], + ); + let authorization_id: AuthorizationIdOf = + Ss58Identifier::create_identifier(&auth_digest.encode()[..], IdentifierType::Authorization) + .unwrap(); + + let id_digest = ::Hashing::hash( + &[ + &entry_digest.encode()[..], + &entry.entity_id.encode()[..], + &message_id.encode()[..], + &space_id.encode()[..], + &creator.clone().encode()[..], + ] + .concat()[..], + ); + + let rating_identifier = + Ss58Identifier::create_identifier(&(id_digest).encode()[..], IdentifierType::Rating) + .unwrap(); + + new_test_ext().execute_with(|| { + System::set_block_number(1); + + assert_ok!(Space::create( + DoubleOrigin(author.clone(), creator.clone()).into(), + space_digest, + )); + + assert_ok!(Space::approve(RawOrigin::Root.into(), space_id, 3u64)); + + assert_ok!(Score::register_rating( + DoubleOrigin(author.clone(), creator.clone()).into(), + entry.clone(), + entry_digest, + message_id.clone(), + authorization_id.clone(), + )); + + // Modify the entry for revision with invalid values + let mut revised_entry = entry.clone(); + revised_entry.total_encoded_rating = 0u64; // Invalid rating + revised_entry.count_of_txn = 0u64; // Invalid transaction count + + let revised_entry_digest = ::Hashing::hash( + &[&revised_entry.encode()[..]].concat()[..], + ); + + assert_err!( + Score::revise_rating( + DoubleOrigin(author.clone(), creator.clone()).into(), + revised_entry.clone(), + revised_entry_digest, + message_id.clone(), + rating_identifier.clone(), + authorization_id.clone(), + ), + Error::::InvalidRatingValue + ); + }); +} + #[test] fn check_duplicate_message_id() { let creator = DID_00.clone();