Esempio n. 1
0
        public void UpdateAccounts_ShouldReturnAccounts_WhenAccountExists()
        {
            //Arrange
            _httpMessageHandlerMock
            .Protected()
            .Setup <Task <HttpResponseMessage> >("SendAsync", ItExpr.IsAny <HttpRequestMessage>(),
                                                 ItExpr.IsAny <CancellationToken>())
            .Returns(Task.FromResult(new HttpResponseMessage(HttpStatusCode.OK)
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(
                    @"[{
                            ""id"": ""71452118-efc7-4cc4-8780-a5e22d4baa53"",
                            ""currency"": ""BTC"",
                            ""balance"": ""0.0000000000000000"",
                            ""available"": ""0.0000000000000000"",
                            ""hold"": ""0.0000000000000000"",
                            ""profile_id"": ""75da88c5-05bf-4f54-bc85-5c775bd68254"",
                            ""trading_enabled"":true
                            },
                            {
                            ""id"": ""e316cb9a-0808-4fd7-8914-97829c1925de"",
                            ""currency"": ""USD"",
                            ""balance"": ""80.2301373066930000"",
                            ""available"": ""79.2266348066930000"",
                            ""hold"": ""1.0035025000000000"",
                            ""profile_id"": ""75da88c5-05bf-4f54-bc85-5c775bd68254""
                            }]")
            }))
            .Verifiable();
            HttpClient httpClient = new HttpClient(_httpMessageHandlerMock.Object);

            _connectionAdapter.HttpClient = httpClient;
            Coinbase subjectUnderTest = new Coinbase {
                ConnectionAdapter = _connectionAdapter
            };

            //Act
            subjectUnderTest.UpdateAccountsAsync().Wait();
            //Assert
            Assert.IsNotNull(subjectUnderTest.Accounts);
            Assert.AreEqual(2, subjectUnderTest.Accounts.Count);

            Assert.AreEqual("71452118-efc7-4cc4-8780-a5e22d4baa53", subjectUnderTest.Accounts[0].ID);
            Assert.AreEqual("BTC", subjectUnderTest.Accounts[0].Currency);
            Assert.AreEqual((decimal)0.0000000000000000, subjectUnderTest.Accounts[0].Balance.ToDecimal());
            Assert.AreEqual((decimal)0.0000000000000000, subjectUnderTest.Accounts[0].Available.ToDecimal());
            Assert.AreEqual((decimal)0.0000000000000000, subjectUnderTest.Accounts[0].Hold.ToDecimal());

            Assert.AreEqual("e316cb9a-0808-4fd7-8914-97829c1925de", subjectUnderTest.Accounts[1].ID);
            Assert.AreEqual("USD", subjectUnderTest.Accounts[1].Currency);
            Assert.AreEqual((decimal)Math.Round(80.23013731, 6), subjectUnderTest.Accounts[1].Balance.ToDecimal());
            Assert.AreEqual((decimal)Math.Round(79.22663481, 6), subjectUnderTest.Accounts[1].Available.ToDecimal());
            Assert.AreEqual((decimal)Math.Round(1.00350250, 6), subjectUnderTest.Accounts[1].Hold.ToDecimal());
        }
Esempio n. 2
0
        public void UpdateAccountsWithParameter_ShouldReturnAccounts_WhenAccountExists()
        {
            //Arrange
            _httpMessageHandlerMock
            .Protected()
            .Setup <Task <HttpResponseMessage> >("SendAsync", ItExpr.IsAny <HttpRequestMessage>(),
                                                 ItExpr.IsAny <CancellationToken>())
            .Returns(Task.FromResult(new HttpResponseMessage(HttpStatusCode.OK)
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(
                    @"[{
                            ""id"": ""71452118-efc7-4cc4-8780-a5e22d4baa53"",
                            ""currency"": ""BTC"",
                            ""balance"": ""0.0000000000000000"",
                            ""available"": ""0.0000000000000000"",
                            ""hold"": ""0.0000000000000000"",
                            ""profile_id"": ""75da88c5-05bf-4f54-bc85-5c775bd68254"",
                            ""trading_enabled"":true
                            }]")
            }))
            .Verifiable();
            HttpClient httpClient = new HttpClient(_httpMessageHandlerMock.Object);

            _connectionAdapter.HttpClient = httpClient;
            Coinbase subjectUnderTest = new Coinbase();

            subjectUnderTest.ConnectionAdapter = _connectionAdapter;
            //Act
            subjectUnderTest.UpdateAccountsAsync("71452118-efc7-4cc4-8780-a5e22d4baa53").Wait();
            //Assert
            Assert.IsNotNull(subjectUnderTest.Accounts);
            Assert.AreEqual(1, subjectUnderTest.Accounts.Count);

            Assert.AreEqual("71452118-efc7-4cc4-8780-a5e22d4baa53", subjectUnderTest.Accounts[0].ID);
            Assert.AreEqual("BTC", subjectUnderTest.Accounts[0].Currency);
            Assert.AreEqual((decimal)0.0000000000000000, subjectUnderTest.Accounts[0].Balance.ToDecimal());
            Assert.AreEqual((decimal)0.0000000000000000, subjectUnderTest.Accounts[0].Available.ToDecimal());
            Assert.AreEqual((decimal)0.0000000000000000, subjectUnderTest.Accounts[0].Hold.ToDecimal());
        }