Ejemplo n.º 1
0
        public void DepositConfirmedEventTest_ChecksThatDepositConfirmedEventsAreRaisedHandledProperly_VerifiesThroughRaisedEvents()
        {
            var mockFundsRepository       = new MockFundsRepository();
            var mockWithdrawRepository    = new MockWithdrawRepository();
            var mockBitcoinClientService  = new MockBitcoinClientService();
            var mockLitecoinClientService = new MockLitecoinClientService();
            ClientInteractionService clientInteractionService = new ClientInteractionService(mockFundsRepository, mockWithdrawRepository,
                                                                                             mockBitcoinClientService, mockLitecoinClientService);

            bool             eventFired       = false;
            int              eventCounter     = 0;
            ManualResetEvent manualResetEvent = new ManualResetEvent(false);

            clientInteractionService.DepositConfirmed +=
                delegate(string currency, int newTransactions)
            {
                eventFired = true;
                eventCounter++;
            };

            // Raise the event twice from both services to see if duplicate invocations don't occur
            mockBitcoinClientService.RaiseDepositConfirmedEvent();
            mockLitecoinClientService.RaiseDepositConfirmedEvent();
            mockBitcoinClientService.RaiseDepositConfirmedEvent();
            mockLitecoinClientService.RaiseDepositConfirmedEvent();
            manualResetEvent.WaitOne(3000);
            Assert.IsTrue(eventFired);
            Assert.AreEqual(4, eventCounter);
        }
Ejemplo n.º 2
0
        public void CancelWithdrawTest_ChecksThatWithdrawEventIsSubmittedAsExpectedToTheCoinClientService_VerifiesThroughVariablesValues()
        {
            var mockFundsRepository       = new MockFundsRepository();
            var mockWithdrawRepository    = new MockWithdrawRepository();
            var mockBitcoinClientService  = new MockBitcoinClientService();
            var mockLitecoinClientService = new MockLitecoinClientService();
            ClientInteractionService clientInteractionService = new ClientInteractionService(mockFundsRepository, mockWithdrawRepository,
                                                                                             mockBitcoinClientService, mockLitecoinClientService);

            Withdraw withdraw = new Withdraw(new Currency("BTC", true), "123", DateTime.Now, WithdrawType.Bitcoin, 0.4m,
                                             0.001m, TransactionStatus.Pending,
                                             new AccountId(123), new BitcoinAddress("bitcoin123"));

            bool             eventFired       = false;
            ManualResetEvent manualResetEvent = new ManualResetEvent(false);
            Withdraw         withdraw2        = null;

            clientInteractionService.WithdrawExecuted += delegate(Withdraw receivedWithdraw)
            {
                eventFired = true;
                withdraw2  = receivedWithdraw;
                manualResetEvent.Set();
            };
            bool commitWithdraw = clientInteractionService.CommitWithdraw(withdraw);

            Assert.IsTrue(commitWithdraw);
            clientInteractionService.CancelWithdraw(withdraw.WithdrawId);
            manualResetEvent.WaitOne(Convert.ToInt16(clientInteractionService.WithdrawSubmissionInterval));

            Assert.IsFalse(eventFired);
            Assert.IsNull(withdraw2);
        }
Ejemplo n.º 3
0
        public void CommitWithdrawFailTest_ChecksThatWithdrawEventIsSubmittedAsExpectedToTheCoinClientService_VerifiesThroughVariablesValues()
        {
            var mockFundsRepository       = new MockFundsRepository();
            var mockWithdrawRepository    = new MockWithdrawRepository();
            var mockBitcoinClientService  = new MockBitcoinClientService();
            var mockLitecoinClientService = new MockLitecoinClientService();
            ClientInteractionService clientInteractionService = new ClientInteractionService(mockFundsRepository, mockWithdrawRepository,
                                                                                             mockBitcoinClientService, mockLitecoinClientService);

            Withdraw withdraw = null;

            clientInteractionService.CommitWithdraw(withdraw);
        }
Ejemplo n.º 4
0
        public void NewAddressForLtcTest_ChecksThatNewAddressIsCreatedAndReturnedProperly_VerifiesThroughRaisedEvents()
        {
            var mockFundsRepository       = new MockFundsRepository();
            var mockWithdrawRepository    = new MockWithdrawRepository();
            var mockBitcoinClientService  = new MockBitcoinClientService();
            var mockLitecoinClientService = new MockLitecoinClientService();
            ClientInteractionService clientInteractionService = new ClientInteractionService(mockFundsRepository, mockWithdrawRepository,
                                                                                             mockBitcoinClientService, mockLitecoinClientService);

            string newAddress = clientInteractionService.GenerateNewAddress("LTC");

            Assert.IsTrue(!string.IsNullOrEmpty(newAddress));
        }