Beispiel #1
0
        public void SplittingStrategyExecutesCorrectMethod()
        {
            this.ItemSplitStrategyHandlerMock = new Mock<IItemSplitStrategyHandler>();
            this.ItemFactoryMock = new Mock<IItemFactory>();

            this.Setup();

            var item = new RealItem(this.DefaultRealMeta, this.ItemServices);
            var factoryResultItem = new RealItem(this.DefaultRealMeta, this.ItemServices);

            this.ItemFactoryMock.Setup(x => x.CreateItem(this.RealMeta, 2))
                .Returns<ItemMeta, int>((meta, amount) =>
                {
                    factoryResultItem.SetAmount(amount);

                    return factoryResultItem;
                });

            this.ItemSplitStrategyHandlerMock
                .Setup(x => x.SplitItem(item, It.IsAny<IItem>()));

            item.SetAmount(5);

            var resultItem = item.SplitItem(2);

            resultItem.Should()
                .NotBeNull()
                .And.Be(factoryResultItem);

            this.ItemSplitStrategyHandlerMock.Verify(x => x.SplitItem(item, It.IsAny<IItem>()), Times.Once);
        }