Example #1
0
        public void WhenWeGetSellSideAndWeNeedMultipleValues4()
        {
            var source1 = new object();
            var source2 = new object();

            var assetCost1 = new AssetCost(DateTime.Now.ToUnixDateTime(), 8, 4.4m, source1);
            var assetCost2 = new AssetCost(DateTime.Now.ToUnixDateTime(), 3, 3.3m, source2);

            _objectUnderTest.IncrementAmount(assetCost1);
            _objectUnderTest.IncrementAmount(assetCost2);

            var sellSideFor = _objectUnderTest.DecrementAmount(10, null).ToArray();

            Assert.AreEqual(2, sellSideFor.Length);
            Assert.AreEqual(8, sellSideFor[0].RemainingQuantity);
            Assert.AreEqual(2, sellSideFor[1].RemainingQuantity);
            Assert.AreEqual(4.4, sellSideFor[0].CostPerUnit);
            Assert.AreEqual(3.3, sellSideFor[1].CostPerUnit);
            Assert.AreEqual(source1, sellSideFor[0].Item);
            Assert.AreEqual(source2, sellSideFor[1].Item);

            Assert.AreEqual(1, _objectUnderTest.AssetCosts.Single().RemainingQuantity);
            Assert.AreEqual(3.3m, _objectUnderTest.AssetCosts.Single().CostPerUnit);
            Assert.AreEqual(source2, _objectUnderTest.AssetCosts.Single().Item);

            Assert.AreEqual(0, _objectUnderTest.SellSideBreaches);
        }
Example #2
0
        public void WhenWeGetSellSideWithZero()
        {
            var source = new object();

            var assetCost = new AssetCost(DateTime.Now.ToUnixDateTime(), 10, 2.2m, source);

            _objectUnderTest.IncrementAmount(assetCost);

            var sellSideFor = _objectUnderTest.DecrementAmount(0, null).ToArray();

            CollectionAssert.IsEmpty(sellSideFor);
            CollectionAssert.IsNotEmpty(_objectUnderTest.AssetCosts);
            Assert.AreEqual(0, _objectUnderTest.SellSideBreaches);
        }
Example #3
0
        public void WhenWeGetSellSideAndWeNeedMultipleValues()
        {
            var source1 = new object();
            var source2 = new object();

            var assetCost1 = new AssetCost(DateTime.Now.ToUnixDateTime(), 8, 2.2m, source1);
            var assetCost2 = new AssetCost(DateTime.Now.ToUnixDateTime(), 2, 3.3m, source2);

            _objectUnderTest.IncrementAmount(assetCost1);
            _objectUnderTest.IncrementAmount(assetCost2);

            var sellSideFor = _objectUnderTest.DecrementAmount(10, null).ToArray();

            CollectionAssert.AreEqual(new[] { assetCost2, assetCost1 }, sellSideFor);
            CollectionAssert.IsEmpty(_objectUnderTest.AssetCosts);
            Assert.AreEqual(0, _objectUnderTest.SellSideBreaches);
        }