@@ -1082,5 +1082,76 @@ macro_rules! decl_tests {
10821082 assert_eq!( Balances :: free_balance( & 1 ) , 52 ) ;
10831083 } ) ;
10841084 }
1085+
1086+ #[ test]
1087+ fn ensure_reserved_named_should_work( ) {
1088+ <$ext_builder>:: default ( ) . build( ) . execute_with( || {
1089+ let _ = Balances :: deposit_creating( & 1 , 111 ) ;
1090+
1091+ let id = [ 1u8 ; 8 ] ;
1092+
1093+ assert_ok!( Balances :: ensure_reserved_named( & id, & 1 , 15 ) ) ;
1094+ assert_eq!( Balances :: reserved_balance_named( & id, & 1 ) , 15 ) ;
1095+
1096+ assert_ok!( Balances :: ensure_reserved_named( & id, & 1 , 10 ) ) ;
1097+ assert_eq!( Balances :: reserved_balance_named( & id, & 1 ) , 10 ) ;
1098+
1099+ assert_ok!( Balances :: ensure_reserved_named( & id, & 1 , 20 ) ) ;
1100+ assert_eq!( Balances :: reserved_balance_named( & id, & 1 ) , 20 ) ;
1101+ } ) ;
1102+ }
1103+
1104+ #[ test]
1105+ fn unreserve_all_named_should_work( ) {
1106+ <$ext_builder>:: default ( ) . build( ) . execute_with( || {
1107+ let _ = Balances :: deposit_creating( & 1 , 111 ) ;
1108+
1109+ let id = [ 1u8 ; 8 ] ;
1110+
1111+ assert_ok!( Balances :: reserve_named( & id, & 1 , 15 ) ) ;
1112+
1113+ assert_eq!( Balances :: unreserve_all_named( & id, & 1 ) , 15 ) ;
1114+ assert_eq!( Balances :: reserved_balance_named( & id, & 1 ) , 0 ) ;
1115+
1116+ assert_eq!( Balances :: unreserve_all_named( & id, & 1 ) , 0 ) ;
1117+ } ) ;
1118+ }
1119+
1120+ #[ test]
1121+ fn slash_all_reserved_named_should_work( ) {
1122+ <$ext_builder>:: default ( ) . build( ) . execute_with( || {
1123+ let _ = Balances :: deposit_creating( & 1 , 111 ) ;
1124+
1125+ let id = [ 1u8 ; 8 ] ;
1126+
1127+ assert_ok!( Balances :: reserve_named( & id, & 1 , 15 ) ) ;
1128+
1129+ assert_eq!( Balances :: slash_all_reserved_named( & id, & 1 ) . peek( ) , 15 ) ;
1130+ assert_eq!( Balances :: reserved_balance_named( & id, & 1 ) , 0 ) ;
1131+
1132+ assert_eq!( Balances :: slash_all_reserved_named( & id, & 1 ) . peek( ) , 0 ) ;
1133+ } ) ;
1134+ }
1135+
1136+ #[ test]
1137+ fn repatriate_all_reserved_named_should_work( ) {
1138+ <$ext_builder>:: default ( ) . build( ) . execute_with( || {
1139+ let _ = Balances :: deposit_creating( & 1 , 111 ) ;
1140+ let _ = Balances :: deposit_creating( & 2 , 10 ) ;
1141+ let _ = Balances :: deposit_creating( & 3 , 10 ) ;
1142+
1143+ let id = [ 1u8 ; 8 ] ;
1144+
1145+ assert_ok!( Balances :: reserve_named( & id, & 1 , 15 ) ) ;
1146+
1147+ assert_ok!( Balances :: repatriate_all_reserved_named( & id, & 1 , & 2 , Status :: Reserved ) ) ;
1148+ assert_eq!( Balances :: reserved_balance_named( & id, & 1 ) , 0 ) ;
1149+ assert_eq!( Balances :: reserved_balance_named( & id, & 2 ) , 15 ) ;
1150+
1151+ assert_ok!( Balances :: repatriate_all_reserved_named( & id, & 2 , & 3 , Status :: Free ) ) ;
1152+ assert_eq!( Balances :: reserved_balance_named( & id, & 2 ) , 0 ) ;
1153+ assert_eq!( Balances :: free_balance( & 3 ) , 25 ) ;
1154+ } ) ;
1155+ }
10851156 }
10861157}
0 commit comments