@@ -512,6 +512,7 @@ def test_accounts_transfer(self):
512
512
513
513
order .debit_from (source = card , amount = 1234 )
514
514
sweep_account = merchant .account
515
+ self .assertEqual (sweep_account .balance , 0 )
515
516
account_credit = sweep_account .credit (amount = 1234 , order = order .href ,
516
517
appears_on_statement_as = 'Payout' )
517
518
self .assertEqual (account_credit .status , 'succeeded' )
@@ -522,12 +523,14 @@ def test_accounts_transfer_from_multiple_orders(self):
522
523
merchant = balanced .Customer ().save ()
523
524
card = balanced .Card (** INTERNATIONAL_CARD ).save ()
524
525
sweep_account = merchant .account
526
+ self .assertEqual (sweep_account .balance , 0 )
525
527
amount = 1234
526
528
527
529
order_one = merchant .create_order ()
528
530
order_one .debit_from (source = card , amount = amount )
529
531
account_credit_one = sweep_account .credit (amount = amount ,
530
532
order = order_one .href )
533
+ self .assertEqual (sweep_account .balance , amount )
531
534
order_two = merchant .create_order ()
532
535
order_two .debit_from (source = card , amount = amount )
533
536
account_credit_two = sweep_account .credit (amount = amount ,
@@ -543,6 +546,7 @@ def test_settlement(self):
543
546
sweep_account = merchant .account
544
547
account_credit = sweep_account .credit (amount = 1234 , order = order .href ,
545
548
appears_on_statement_as = 'Payout' )
549
+ self .assertEqual (sweep_account .balance , 1234 )
546
550
bank_account = balanced .BankAccount (
547
551
account_number = '1234567890' ,
548
552
routing_number = '321174851' ,
@@ -551,13 +555,75 @@ def test_settlement(self):
551
555
bank_account .associate_to_customer (merchant )
552
556
553
557
settlement = sweep_account .settle (
554
- destination = bank_account .href ,
558
+ funding_instrument = bank_account .href ,
555
559
appears_on_statement_as = "Settlement Oct" ,
556
560
description = "Settlement for payouts from October" )
557
561
self .assertEqual (settlement .amount , 1234 )
558
562
self .assertEqual (settlement .appears_on_statement_as , "Settlement Oct" )
559
563
self .assertEqual (settlement .description ,
560
564
"Settlement for payouts from October" )
565
+ self .assertEqual (sweep_account .balance , 0 )
566
+
567
+ def test_reverse_settlement (self ):
568
+ merchant = balanced .Customer ().save ()
569
+ order = merchant .create_order ()
570
+ card = balanced .Card (** INTERNATIONAL_CARD ).save ()
571
+
572
+ order .debit_from (source = card , amount = 1234 )
573
+ sweep_account = merchant .account
574
+ account_credit = sweep_account .credit (amount = 1234 , order = order .href ,
575
+ appears_on_statement_as = 'Payout' )
576
+ self .assertEqual (sweep_account .balance , 1234 )
577
+
578
+ bank_account = balanced .BankAccount (
579
+ account_number = '1234567890' ,
580
+ routing_number = '321174851' ,
581
+ name = 'Someone' ,
582
+ ).save ()
583
+ bank_account .associate_to_customer (merchant )
584
+
585
+ settlement = sweep_account .settle (
586
+ funding_instrument = bank_account .href ,
587
+ appears_on_statement_as = "Settlement Oct" ,
588
+ description = "Settlement for payouts from October" )
589
+ self .assertEqual (sweep_account .balance , 0 )
590
+
591
+ credit_from_escrow = sweep_account .credit (amount = 1234 )
592
+ self .assertEqual (sweep_account .balance , 1234 )
593
+
594
+ account_credit .reverse (amount = 1234 )
595
+ self .assertEqual (sweep_account .balance , 0 )
596
+
597
+ def test_reverse_settlement_with_negative_account_balance (self ):
598
+ merchant = balanced .Customer ().save ()
599
+ order = merchant .create_order ()
600
+ card = balanced .Card (** INTERNATIONAL_CARD ).save ()
601
+
602
+ order .debit_from (source = card , amount = 1234 )
603
+ sweep_account = merchant .account
604
+ account_credit = sweep_account .credit (amount = 1234 , order = order .href ,
605
+ appears_on_statement_as = 'Payout' )
606
+ bank_account = balanced .BankAccount (
607
+ account_number = '1234567890' ,
608
+ routing_number = '321174851' ,
609
+ name = 'Someone' ,
610
+ ).save ()
611
+ bank_account .associate_to_customer (merchant )
612
+
613
+ settlement = sweep_account .settle (
614
+ funding_instrument = bank_account .href ,
615
+ appears_on_statement_as = "Settlement Oct" ,
616
+ description = "Settlement for payouts from October" )
617
+ self .assertEqual (sweep_account .balance , 0 )
618
+
619
+ account_credit .reverse (amount = 1234 )
620
+ self .assertEqual (sweep_account .balance , - 1234 )
621
+
622
+ settlement = sweep_account .settle (
623
+ funding_instrument = bank_account .href ,
624
+ appears_on_statement_as = "Settlement Oct" ,
625
+ description = "Settlement for payouts from October" )
626
+ self .assertEqual (sweep_account .balance , 0 )
561
627
562
628
563
629
class Rev0URIBasicUseCases (unittest .TestCase ):
0 commit comments