@@ -837,6 +837,42 @@ mod tests {
837837 assert_eq ! ( creator + protocol, total, "total={}" , total) ;
838838 }
839839 }
840+
841+ #[ test]
842+ fn test_checked_format_quote_response_buy_success ( ) {
843+ let res = super :: checked_format_quote_response ( 1000 , 90 , 10 , true ) . unwrap ( ) ;
844+ assert_eq ! ( res. price, 1000 ) ;
845+ assert_eq ! ( res. creator_fee, 90 ) ;
846+ assert_eq ! ( res. protocol_fee, 10 ) ;
847+ assert_eq ! ( res. total_amount, 1100 ) ;
848+ }
849+
850+ #[ test]
851+ fn test_checked_format_quote_response_sell_success ( ) {
852+ let res = super :: checked_format_quote_response ( 1000 , 90 , 10 , false ) . unwrap ( ) ;
853+ assert_eq ! ( res. price, 1000 ) ;
854+ assert_eq ! ( res. creator_fee, 90 ) ;
855+ assert_eq ! ( res. protocol_fee, 10 ) ;
856+ assert_eq ! ( res. total_amount, 900 ) ;
857+ }
858+
859+ #[ test]
860+ fn test_checked_format_quote_response_buy_overflow_fees ( ) {
861+ let res = super :: checked_format_quote_response ( 1000 , i128:: MAX , 1 , true ) ;
862+ assert_eq ! ( res, Err ( super :: ContractError :: Overflow ) ) ;
863+ }
864+
865+ #[ test]
866+ fn test_checked_format_quote_response_buy_overflow_total ( ) {
867+ let res = super :: checked_format_quote_response ( i128:: MAX , 1 , 0 , true ) ;
868+ assert_eq ! ( res, Err ( super :: ContractError :: Overflow ) ) ;
869+ }
870+
871+ #[ test]
872+ fn test_checked_format_quote_response_sell_underflow_total ( ) {
873+ let res = super :: checked_format_quote_response ( i128:: MIN , 1 , 0 , false ) ;
874+ assert_eq ! ( res, Err ( super :: ContractError :: Overflow ) ) ;
875+ }
840876}
841877
842878#[ cfg( test) ]
0 commit comments