@@ -1082,5 +1082,78 @@ 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+ assert_eq!( Balances :: free_balance( & 1 ) , 111 ) ;
1116+
1117+ assert_eq!( Balances :: unreserve_all_named( & id, & 1 ) , 0 ) ;
1118+ } ) ;
1119+ }
1120+
1121+ #[ test]
1122+ fn slash_all_reserved_named_should_work( ) {
1123+ <$ext_builder>:: default ( ) . build( ) . execute_with( || {
1124+ let _ = Balances :: deposit_creating( & 1 , 111 ) ;
1125+
1126+ let id = [ 1u8 ; 8 ] ;
1127+
1128+ assert_ok!( Balances :: reserve_named( & id, & 1 , 15 ) ) ;
1129+
1130+ assert_eq!( Balances :: slash_all_reserved_named( & id, & 1 ) . peek( ) , 15 ) ;
1131+ assert_eq!( Balances :: reserved_balance_named( & id, & 1 ) , 0 ) ;
1132+ assert_eq!( Balances :: free_balance( & 1 ) , 96 ) ;
1133+
1134+ assert_eq!( Balances :: slash_all_reserved_named( & id, & 1 ) . peek( ) , 0 ) ;
1135+ } ) ;
1136+ }
1137+
1138+ #[ test]
1139+ fn repatriate_all_reserved_named_should_work( ) {
1140+ <$ext_builder>:: default ( ) . build( ) . execute_with( || {
1141+ let _ = Balances :: deposit_creating( & 1 , 111 ) ;
1142+ let _ = Balances :: deposit_creating( & 2 , 10 ) ;
1143+ let _ = Balances :: deposit_creating( & 3 , 10 ) ;
1144+
1145+ let id = [ 1u8 ; 8 ] ;
1146+
1147+ assert_ok!( Balances :: reserve_named( & id, & 1 , 15 ) ) ;
1148+
1149+ assert_ok!( Balances :: repatriate_all_reserved_named( & id, & 1 , & 2 , Status :: Reserved ) ) ;
1150+ assert_eq!( Balances :: reserved_balance_named( & id, & 1 ) , 0 ) ;
1151+ assert_eq!( Balances :: reserved_balance_named( & id, & 2 ) , 15 ) ;
1152+
1153+ assert_ok!( Balances :: repatriate_all_reserved_named( & id, & 2 , & 3 , Status :: Free ) ) ;
1154+ assert_eq!( Balances :: reserved_balance_named( & id, & 2 ) , 0 ) ;
1155+ assert_eq!( Balances :: free_balance( & 3 ) , 25 ) ;
1156+ } ) ;
1157+ }
10851158 }
10861159}
0 commit comments