public void Buy_NotInitialized_ThrowsException() { var subject = new DemoBroker(Mock.Of <IExchange>()); var exception = Expect.ThrowAsync <InvalidOperationException>(async() => { await subject.Buy(new Sample()); }); Assert.AreEqual("Broker cannot Buy until Initialized!", exception.Message); }
public void GetTotalValue_NullSample_ThrowsException() { var subject = new DemoBroker(Mock.Of <IExchange>()); var exception = Expect.Throw <ArgumentNullException>(() => { subject.GetTotalValue(null); }); Assert.AreEqual("rate", exception.ParamName); }
public void Sell_NullSample_ThrowsException() { var subject = new DemoBroker(Mock.Of <IExchange>()); var exception = Expect.ThrowAsync <ArgumentNullException>(async() => { await subject.Sell(null); }); Assert.AreEqual("rate", exception.ParamName); }
public void Dispose_NotInitialized_CannotDoStuff() { var subject = new DemoBroker(Mock.Of <IExchange>()); subject.Dispose(); var exception = Expect.ThrowAsync <InvalidOperationException>(async() => { await subject.Sell(new Sample()); }); Assert.AreEqual("Broker cannot Sell until Initialized!", exception.Message); }
public void GetTotalValue_GoodSample_CalculatesCorrectly() { var sample = new Sample() { Value = 1.25M }; var subject = new DemoBroker(Mock.Of <IExchange>()); var result = subject.GetTotalValue(sample); Assert.AreEqual(22.50M, result); }
public void Initialize_StartValueSmaller_ReturnsTrue() { var now = DateTime.Now; var exchangeMock = new Mock <IExchange>(); exchangeMock.SetupSequence(m => m.GetCurrentPrice()) .ReturnsAsync(new Sample { Value = 100, DateTime = now }) .ReturnsAsync(new Sample { Value = 99, DateTime = now + TimeSpan.FromMinutes(9) }) .ReturnsAsync(new Sample { Value = 101, DateTime = now + TimeSpan.FromMinutes(10) }); var subject = new DemoBroker(exchangeMock.Object); var result = subject.InitializeAsync(Assets.DOGE, Assets.BTC).Result; Assert.IsTrue(result); }
private DemoBroker InitBroker(Mock <IExchange> socketMock) { var now = DateTime.Now; socketMock.SetupSequence(m => m.GetCurrentPrice()) .ReturnsAsync(new Sample { Value = 1.000M, DateTime = now }) .ReturnsAsync(new Sample { Value = 1.000M, DateTime = now + TimeSpan.FromMinutes(9) }) .ReturnsAsync(new Sample { Value = 1.000M, DateTime = now + TimeSpan.FromMinutes(10) }); var subject = new DemoBroker(socketMock.Object); subject.InitializeAsync(Assets.DOGE, Assets.DOGE).Wait(); socketMock.Reset(); return(subject); }
public void Initialize_Connects_WarmsUpFor10Minutes() { var now = DateTime.Now; var exchangeMock = new Mock <IExchange>(); exchangeMock.SetupSequence(m => m.GetCurrentPrice()) .ReturnsAsync(new Sample { Value = 100, DateTime = now }) .ReturnsAsync(new Sample { Value = 100, DateTime = now + TimeSpan.FromMinutes(9) }) .ReturnsAsync(new Sample { Value = 100, DateTime = now + TimeSpan.FromMinutes(10) }); var subject = new DemoBroker(exchangeMock.Object); var result = subject.InitializeAsync(Assets.DOGE, Assets.BTC).Result; exchangeMock.Verify(m => m.Initialize(Assets.DOGE, Assets.BTC)); exchangeMock.Verify(m => m.GetCurrentPrice(), Times.Exactly(3)); }