@@ -1082,5 +1082,78 @@ macro_rules! decl_tests {
1082
1082
assert_eq!( Balances :: free_balance( & 1 ) , 52 ) ;
1083
1083
} ) ;
1084
1084
}
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
+ }
1085
1158
}
1086
1159
}
0 commit comments