예제 #1
0
        public void DoNothing_GivenItemIsAlreadyOpen()
        {
            // Arrange
            var fakePlayer = A.Fake <IAdventurePlayer>();
            var fakeGame   = A.Fake <IReadonlyAdventureGame>();

            var fakeCage = A.Fake <IAdventureItem>();

            A.CallTo(() => fakeCage.ItemId).Returns(Item.Cage);
            A.CallTo(() => fakeCage.IsPortable).Returns(true);
            A.CallTo(() => fakeCage.IsMatch("cage")).Returns(true);
            fakeCage.IsOpen = true;

            // Act
            var action = new Open();
            var result = action.Do(fakePlayer, fakeCage);

            // Assert
            Assert.IsTrue(fakeCage.IsOpen);
            Assert.IsFalse(result);
        }
예제 #2
0
        public void SetItemToOpen_GivenItIsClosedAndNotLocked()
        {
            // Arrange
            var fakePlayer = A.Fake <IAdventurePlayer>();
            var fakeGame   = A.Fake <IReadonlyAdventureGame>();

            var fakeCage = A.Fake <IAdventureItem>();

            A.CallTo(() => fakeCage.ItemId).Returns(Item.Cage);
            A.CallTo(() => fakeCage.IsPortable).Returns(true);
            A.CallTo(() => fakeCage.IsMatch("cage")).Returns(true);
            fakeCage.IsOpen = false;

            // Act
            var action = new Open();
            var result = action.Do(fakePlayer, fakeCage);

            // Assert
            Assert.IsTrue(fakeCage.IsOpen);
            Assert.IsTrue(result);
        }