Browse Source

runtime: membership: Fix tests.

Shamil Gadelshin 4 years ago
parent
commit
2aa818b89e
2 changed files with 17 additions and 21 deletions
  1. 8 12
      runtime-modules/membership/src/lib.rs
  2. 9 9
      runtime-modules/membership/src/tests.rs

+ 8 - 12
runtime-modules/membership/src/lib.rs

@@ -17,10 +17,6 @@ use sp_std::vec::Vec;
 // Balance type alias
 type BalanceOf<T> = <T as balances::Trait>::Balance;
 
-//TODO: Convert errors to the Substrate decl_error! macro.
-/// Result with string error message. This exists for backward compatibility purpose.
-pub type DispatchResult = Result<(), &'static str>;
-
 pub trait Trait: frame_system::Trait + balances::Trait + pallet_timestamp::Trait {
     type Event: From<Event<Self>> + Into<<Self as frame_system::Trait>::Event>;
 
@@ -420,7 +416,7 @@ impl<T: Trait> Module<T> {
     }
 
     #[allow(clippy::ptr_arg)] // cannot change to the "&[u8]" suggested by clippy
-    fn ensure_unique_handle(handle: &Vec<u8>) -> DispatchResult {
+    fn ensure_unique_handle(handle: &Vec<u8>) -> Result<(), Error<T>> {
         ensure!(
             !<MemberIdByHandle<T>>::contains_key(handle),
             Error::<T>::HandleAlreadyRegistered
@@ -428,7 +424,7 @@ impl<T: Trait> Module<T> {
         Ok(())
     }
 
-    fn validate_handle(handle: &[u8]) -> DispatchResult {
+    fn validate_handle(handle: &[u8]) -> Result<(), Error<T>> {
         ensure!(
             handle.len() >= Self::min_handle_length() as usize,
             Error::<T>::HandleTooShort
@@ -446,7 +442,7 @@ impl<T: Trait> Module<T> {
         text
     }
 
-    fn validate_avatar(uri: &[u8]) -> DispatchResult {
+    fn validate_avatar(uri: &[u8]) -> Result<(), Error<T>> {
         ensure!(
             uri.len() <= Self::max_avatar_uri_length() as usize,
             Error::<T>::AvatarUriTooLong
@@ -459,7 +455,7 @@ impl<T: Trait> Module<T> {
         handle: Option<Vec<u8>>,
         avatar_uri: Option<Vec<u8>>,
         about: Option<Vec<u8>>,
-    ) -> Result<ValidatedUserInfo, &'static str> {
+    ) -> Result<ValidatedUserInfo, Error<T>> {
         // Handle is required during registration
         let handle = handle.ok_or(Error::<T>::HandleMustBeProvidedDuringRegistration)?;
         Self::validate_handle(&handle)?;
@@ -482,7 +478,7 @@ impl<T: Trait> Module<T> {
         entry_method: EntryMethod,
         registered_at_block: T::BlockNumber,
         registered_at_time: T::Moment,
-    ) -> Result<T::MemberId, &'static str> {
+    ) -> Result<T::MemberId, Error<T>> {
         Self::ensure_unique_handle(&user_info.handle)?;
 
         let new_member_id = Self::members_created();
@@ -512,7 +508,7 @@ impl<T: Trait> Module<T> {
         Ok(new_member_id)
     }
 
-    fn _change_member_about_text(id: T::MemberId, text: &[u8]) -> DispatchResult {
+    fn _change_member_about_text(id: T::MemberId, text: &[u8]) -> Result<(), Error<T>> {
         let mut membership = Self::ensure_membership(id)?;
         let text = Self::validate_text(text);
         membership.about = text;
@@ -521,7 +517,7 @@ impl<T: Trait> Module<T> {
         Ok(())
     }
 
-    fn _change_member_avatar(id: T::MemberId, uri: &[u8]) -> DispatchResult {
+    fn _change_member_avatar(id: T::MemberId, uri: &[u8]) -> Result<(), Error<T>> {
         let mut membership = Self::ensure_membership(id)?;
         Self::validate_avatar(uri)?;
         membership.avatar_uri = uri.to_owned();
@@ -530,7 +526,7 @@ impl<T: Trait> Module<T> {
         Ok(())
     }
 
-    fn _change_member_handle(id: T::MemberId, handle: Vec<u8>) -> DispatchResult {
+    fn _change_member_handle(id: T::MemberId, handle: Vec<u8>) -> Result<(), Error<T>> {
         let mut membership = Self::ensure_membership(id)?;
         Self::validate_handle(&handle)?;
         Self::ensure_unique_handle(&handle)?;

+ 9 - 9
runtime-modules/membership/src/tests.rs

@@ -2,7 +2,9 @@
 
 use super::genesis;
 use super::mock::*;
+use crate::Error;
 
+use frame_support::dispatch::DispatchResult;
 use frame_support::traits::{LockIdentifier, LockableCurrency, WithdrawReasons};
 use frame_support::*;
 
@@ -14,10 +16,9 @@ fn get_membership_by_id(member_id: u64) -> crate::Membership<Test> {
     }
 }
 
-fn assert_dispatch_error_message(result: Result<(), &'static str>, expected_message: &'static str) {
+fn assert_dispatch_error_message(result: DispatchResult, expected_result: DispatchResult) {
     assert!(result.is_err());
-    let message = result.err().unwrap();
-    assert_eq!(message, expected_message);
+    assert_eq!(result, expected_result);
 }
 
 #[derive(Clone, Debug, PartialEq)]
@@ -53,7 +54,7 @@ fn get_bob_info() -> TestUserInfo {
 
 const ALICE_ACCOUNT_ID: u64 = 1;
 
-fn buy_default_membership_as_alice() -> crate::DispatchResult {
+fn buy_default_membership_as_alice() -> DispatchResult {
     let info = get_alice_info();
     Members::buy_membership(
         Origin::signed(ALICE_ACCOUNT_ID),
@@ -61,7 +62,6 @@ fn buy_default_membership_as_alice() -> crate::DispatchResult {
         info.avatar_uri,
         info.about,
     )
-    .map_err(|err| err.into())
 }
 
 fn set_alice_free_balance(balance: u64) {
@@ -114,7 +114,7 @@ fn buy_membership_fails_without_enough_balance() {
 
             assert_dispatch_error_message(
                 buy_default_membership_as_alice(),
-                "not enough balance to buy membership",
+                Err(Error::<Test>::NotEnoughBalanceToBuyMembership.into()),
             );
         });
 }
@@ -132,7 +132,7 @@ fn buy_membership_fails_without_enough_balance_with_locked_balance() {
 
             assert_dispatch_error_message(
                 buy_default_membership_as_alice(),
-                "not enough balance to buy membership",
+                Err(Error::<Test>::NotEnoughBalanceToBuyMembership.into()),
             );
         });
 }
@@ -150,7 +150,7 @@ fn new_memberships_allowed_flag() {
 
             assert_dispatch_error_message(
                 buy_default_membership_as_alice(),
-                "new members not allowed",
+                Err(Error::<Test>::NewMembersNotAllowed.into()),
             );
         });
 }
@@ -172,7 +172,7 @@ fn unique_handles() {
             // should not be allowed to buy membership with that handle
             assert_dispatch_error_message(
                 buy_default_membership_as_alice(),
-                "handle already registered",
+                Err(Error::<Test>::HandleAlreadyRegistered.into()),
             );
         });
 }