public void CalcActualItems_GetContentItems_ResolveContentOnce() { // ARRANGE var scheme = new PropScheme(); var dropResolverMock = new Mock <IDropResolver>(); dropResolverMock.Setup(x => x.Resolve(It.IsAny <DropTableScheme[]>())) .Returns(new IProp[] { CreateFakeResource(scheme) }); var dropResolver = dropResolverMock.Object; var store = new DropTableChestStore(new DropTableScheme[0], dropResolver); var firstProps = store.CalcActualItems(); // ACT var secondProps = store.CalcActualItems(); // ASSERT dropResolverMock.Verify(x => x.Resolve(It.IsAny <DropTableScheme[]>()), Times.Once); secondProps.Length.Should().Be(firstProps.Length); secondProps[0].Should().BeSameAs(firstProps[0]); }
public void CalcActualItems_DropSameResourceTwice_MergeSameResourcesToStack() { // ARRANGE var scheme = new PropScheme(); var dropResolverMock = new Mock <IDropResolver>(); dropResolverMock.Setup(x => x.Resolve(It.IsAny <DropTableScheme[]>())) .Returns(new IProp[] { CreateFakeResource(scheme), CreateFakeResource(scheme) }); var dropResolver = dropResolverMock.Object; var store = new DropTableChestStore(new DropTableScheme[0], dropResolver); // ACT var props = store.CalcActualItems(); // ASSERT props.Length.Should().Be(1); ((Resource)props[0]).Count.Should().Be(2); }