50 lines
1.3 KiB
Go
50 lines
1.3 KiB
Go
package model
|
|
|
|
import "testing"
|
|
|
|
func TestRentalOrderApplyDepositHold(t *testing.T) {
|
|
order := RentalOrder{
|
|
DepositAmountCent: 1000,
|
|
DepositHoldStatus: DepositHoldStatusHeld,
|
|
}
|
|
|
|
actualRefundCent := order.ApplyDepositHold(1500, 1000)
|
|
if actualRefundCent != 500 {
|
|
t.Fatalf("actual refund = %d, want 500", actualRefundCent)
|
|
}
|
|
if order.DepositHoldAmountCent != 1000 {
|
|
t.Fatalf("hold amount = %d, want 1000", order.DepositHoldAmountCent)
|
|
}
|
|
}
|
|
|
|
func TestRentalOrderApplyDepositHoldKeepsWithholdingAfterAmountRecorded(t *testing.T) {
|
|
order := RentalOrder{
|
|
DepositAmountCent: 1000,
|
|
DepositHoldStatus: DepositHoldStatusHeld,
|
|
DepositHoldAmountCent: 1000,
|
|
}
|
|
|
|
actualRefundCent := order.ApplyDepositHold(1500, 1000)
|
|
if actualRefundCent != 500 {
|
|
t.Fatalf("actual refund = %d, want 500", actualRefundCent)
|
|
}
|
|
if order.DepositHoldAmountCent != 1000 {
|
|
t.Fatalf("hold amount = %d, want 1000", order.DepositHoldAmountCent)
|
|
}
|
|
}
|
|
|
|
func TestRentalOrderApplyDepositHoldSkipsWhenNotHeld(t *testing.T) {
|
|
order := RentalOrder{
|
|
DepositAmountCent: 1000,
|
|
DepositHoldStatus: DepositHoldStatusNone,
|
|
}
|
|
|
|
actualRefundCent := order.ApplyDepositHold(1500, 1000)
|
|
if actualRefundCent != 1500 {
|
|
t.Fatalf("actual refund = %d, want 1500", actualRefundCent)
|
|
}
|
|
if order.DepositHoldAmountCent != 0 {
|
|
t.Fatalf("hold amount = %d, want 0", order.DepositHoldAmountCent)
|
|
}
|
|
}
|