Beispiel #1
0
    def test_can_calculate_free_equity_when_zero(self):
        # Arrange
        event = AccountStateEvent(
            AccountId.py_from_string('FXCM-123456-SIMULATED'), Currency.AUD,
            Money(20000, Currency.AUD), Money(100000, Currency.AUD),
            Money(0, Currency.AUD), Money(0, Currency.AUD),
            Money(20000, Currency.AUD), Decimal(0), ValidString('N'),
            GUID(uuid.uuid4()), UNIX_EPOCH)

        # Act
        account = Account(event)

        # Assert
        self.assertEqual(AccountId.py_from_string('FXCM-123456-SIMULATED'),
                         account.id)
        self.assertEqual(Brokerage('FXCM'), account.broker)
        self.assertEqual(AccountNumber('123456'), account.account_number)
        self.assertEqual(Currency.AUD, account.currency)
        self.assertEqual(Money(0, Currency.AUD), account.free_equity)
        self.assertEqual(Money(100000, Currency.AUD), account.cash_start_day)
        self.assertEqual(Money(0, Currency.AUD), account.cash_activity_day)
        self.assertEqual(Money(0, Currency.AUD),
                         account.margin_used_liquidation)
        self.assertEqual(Money(20000, Currency.AUD),
                         account.margin_used_maintenance)
        self.assertEqual(Decimal(0), account.margin_ratio)
        self.assertEqual('N', account.margin_call_status.value)
        self.assertEqual(UNIX_EPOCH, account.last_updated)
Beispiel #2
0
    def test_account_identifier(self):
        # Arrange
        # Act
        account_id1 = AccountId('FXCM', '02851908', AccountType.DEMO)
        account_id2 = AccountId('FXCM', '09999999', AccountType.DEMO)

        # Assert
        self.assertEqual(account_id1, account_id1)
        self.assertNotEqual(account_id1, account_id2)
        self.assertEqual('FXCM-02851908-DEMO', account_id1.value)
        self.assertEqual(Brokerage('FXCM'), account_id1.broker)
        self.assertEqual(account_id1,
                         AccountId.py_from_string('FXCM-02851908-DEMO'))
    def test_can_add_account(self):
        # Arrange
        event = AccountStateEvent(
            AccountId.py_from_string('SIMULATED-123456-SIMULATED'),
            Currency.USD, Money(1000000, Currency.USD),
            Money(1000000, Currency.USD), Money(0, Currency.USD),
            Money(0, Currency.USD), Money(0, Currency.USD), Decimal(0),
            ValidString('N'), GUID(uuid.uuid4()), UNIX_EPOCH)

        account = Account(event)

        # Act
        self.database.add_account(account)

        # Assert
        self.assertTrue(True)  # Did not raise exception