def test_init_custom_fields_source_card_present(self): instance = MagicMock() Transaction.init_custom_fields( instance, payment_type=Transaction.CARD_TYPE, source=SourceCardPresentFactory().to_dict(), amount=1234, ) self.assertIsInstance(instance.source, Source)
def test_init_custom_fields_created_float_parse(self): instance = MagicMock(amount=None) self.assertIsNone(instance.amount) Transaction.init_custom_fields(instance, payment_type=Transaction.BOLETO_TYPE, id="foo", amount="12.34") self.assertEqual(instance.amount, 1234)
def test_init_custom_fields_invoice(self): instance = MagicMock() Transaction.init_custom_fields(instance, payment_type=Transaction.BOLETO_TYPE, amount=1234) self.assertIsInstance(instance.payment_method, Invoice) self.assertIsInstance(instance.point_of_sale, PointOfSale) self.assertIsInstance(instance.history, list) self.assertEqual(len(instance.history), 1) self.assertIsInstance(instance.history[0], History)
def test_init_custom_fields_source_card_not_present(self): instance = MagicMock() Transaction.init_custom_fields( instance, payment_type=Transaction.CARD_TYPE, source=SourceCardNotPresentFactory(amount=1234, usage="single_use").to_dict(), amount=1234, allow_empty=True, ) self.assertIsInstance(instance.source, Source)
def test_init_custom_fields_user_given_float_amount(self): """ Dado que um usuário criou a transação com amount 56.78 Quando init_custom_fields rodar Então o amount após conversão deve ser 5678 """ instance = MagicMock() Transaction.init_custom_fields(instance, payment_type=Transaction.BOLETO_TYPE, amount=56.78) self.assertEqual(instance.amount, 5678)
def test_init_custom_fields_user_given_integer_amount(self): """ Dado que um usuário criou a transação com amount 1234 Quando init_custom_fields rodar Então o amount após conversão deve continuar sendo 1234 """ instance = MagicMock() Transaction.init_custom_fields(instance, payment_type=Transaction.BOLETO_TYPE, amount=1234) self.assertEqual(instance.amount, 1234)
def test_init_custom_fields_created_card(self): instance = MagicMock() Transaction.init_custom_fields(instance, payment_type=Transaction.CARD_TYPE, id="foo", amount="23.45") self.assertEqual(instance.amount, 2345) self.assertIsInstance(instance.payment_method, Card) self.assertIsInstance(instance.point_of_sale, PointOfSale) self.assertIsInstance(instance.history, list) self.assertEqual(len(instance.history), 1) self.assertIsInstance(instance.history[0], History)
def test_non_required_fields(self): self.assertIsSubSet( { "app_transaction_uid", "business", "captured", "confirmed", "discounts", "expected_on", "fee_details", "fees", "gateway_authorizer", "history", "individual", "installment_plan", "location_latitude", "location_longitude", "original_amount", "point_of_sale", "pre_authorization", "reference_id", "refunded", "refunds", "rewards", "sales_receipt", "statement_descriptor", "status", "transaction_number", "voided", }, Transaction.get_non_required_fields(), )
def test_required_fields(self): self.assertEqual( { "currency", "customer", "description", "on_behalf_of", "payment_type" }, Transaction.get_required_fields(), )
def test_get_boleto_required_fields(self): expected = {"payment_method", "amount"} with patch( "zoop_wrapper.models.transaction.Transaction.get_required_fields" ) as mocked_required: mocked_required.return_value = set() result = Transaction.get_boleto_required_fields() mocked_required.assert_called_once() self.assertEqual(result, expected)
def test_get_card_required_fields(self): expected = {"source", "capture"} with patch( "zoop_wrapper.models.transaction.Transaction.get_required_fields" ) as mocked_required: mocked_required.return_value = set() result = Transaction.get_card_required_fields() mocked_required.assert_called_once() self.assertEqual(result, expected)