@@ -1082,5 +1082,76 @@ 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
+
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
+ }
1085
1156
}
1086
1157
}
0 commit comments