Пример #1
0
    def transfer(self):

        accounttyperulesfactory = AccountTypeRulesFactory()

        senderaccounttyperules = accounttyperulesfactory.make(
            self.__sender.gettype())
        senderaccounttyperules.checklimitwithdrawal(self.__transferamount)
        self.__sender.withdraw(self.__transferamount)

        recorddescription = f"Transferencia ocorrida no valor {self.__transferamount.getvalue()} com o remetente do numero de conta {self.__sender.getnumber()} e destinatario com numero de conta {self.__receiver.getnumber()}"
        whenoccurred = datetime.now()

        receiveraccounttyperules = accounttyperulesfactory.make(
            self.__receiver.gettype())
        receiveraccounttyperules.checklimitreceive(self.__transferamount)
        self.__receiver.receive(self.__transferamount)

        sendernumber = self.__sender.getnumber()
        recordsenderamount = -int(self.__transferamount)
        banktransactionrecordsender = BankTransactionRecord(
            self.__bankoperationtype, sendernumber, whenoccurred,
            recordsenderamount, recorddescription, self.__sender.getid())

        receivernumber = self.__receiver.getnumber()
        recordreceiveramount = +int(self.__transferamount)
        banktransactionrecordreceiver = BankTransactionRecord(
            self.__bankoperationtype, receivernumber, whenoccurred,
            recordreceiveramount, recorddescription, self.__receiver.getid())

        return (banktransactionrecordsender, banktransactionrecordreceiver)
    def test_not_should_register_a_bank_transaction_when_the_operation_is_invalid(
            self):

        whenoccurred = datetime.now()
        amount = 100
        description = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"

        with self.assertRaises(TypeError):
            BankTransactionRecord(13, "123", whenoccurred, amount, description,
                                  1)
    def test_not_should_register_a_bank_transaction_when_the_description_is_invalid_lenght(
            self):

        whenoccurred = datetime.now()
        amount = 100
        description = "AAAAAA"

        with self.assertRaises(ValueError):
            BankTransactionRecord(BankOperationType.DEPOSIT, "123",
                                  whenoccurred, amount, description, 1)
    def test_not_should_register_a_bank_transaction_when_the_date_is_invalid(
            self):

        whenoccurred = "10/20/2019"
        amount = 100
        description = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"

        with self.assertRaises(TypeError):
            BankTransactionRecord(BankOperationType.DEPOSIT, "123",
                                  whenoccurred, amount, description, 1)
    def test_should_register_a_bank_transaction(self):

        whenoccurred = datetime.now()
        amount = 100
        description = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"

        banktransactionrecord = BankTransactionRecord(
            BankOperationType.DEPOSIT, "123", whenoccurred, amount,
            description, 1)

        self.assertIsInstance(banktransactionrecord, BankTransactionRecord)
        self.assertIsNotNone(banktransactionrecord)
Пример #6
0
    def towithdraw(self):

        accounttyperulesfactory = AccountTypeRulesFactory()

        targetaccounttyperules = accounttyperulesfactory.make(
            self.__target.gettype())
        targetaccounttyperules.checklimitwithdrawal(self.__withdrawamount)
        self.__target.withdraw(self.__withdrawamount)

        number = self.__target.getnumber()
        recorddescription = "Saque em conta bancaria"
        recorddepositamount = -int(self.__withdrawamount)
        return BankTransactionRecord(self.__bankoperationtype, number,
                                     datetime.now(), recorddepositamount,
                                     recorddescription, self.__target.getid())
Пример #7
0
    def todeposit(self):

        accounttyperulesfactory = AccountTypeRulesFactory()

        receiveraccounttyperules = accounttyperulesfactory.make(
            self.__receiver.gettype())
        receiveraccounttyperules.checklimitreceive(self.__depositamount)
        self.__receiver.receive(self.__depositamount)

        number = self.__receiver.getnumber()
        recorddescription = "Depositado em conta bancaria"
        recorddepositamount = +int(self.__depositamount)
        return BankTransactionRecord(self.__bankoperationtype, number,
                                     datetime.now(),
                                     recorddepositamount, recorddescription,
                                     self.__receiver.getid())