Esempio n. 1
0
        public void DoNothing_GivenPlayerHasNoKey()
        {
            // Arrange
            var inventory = new Inventory();

            var fakePlayer = A.Fake <IAdventurePlayer>();

            A.CallTo(() => fakePlayer.Inventory).Returns(inventory);
            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;
            fakeCage.IsLocked       = true;
            fakeCage.ItemIdToUnlock = Item.Key;

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

            // Assert
            Assert.IsTrue(fakeCage.IsLocked);
            Assert.IsFalse(result);
        }
Esempio n. 2
0
        public void DoNothing_GivenItIsUnklocked()
        {
            // Arrange
            var inventory = new Inventory();

            var fakePlayer = A.Fake <IAdventurePlayer>();

            A.CallTo(() => fakePlayer.Inventory).Returns(inventory);
            var fakeGame = A.Fake <IReadonlyAdventureGame>();

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

            A.CallTo(() => fakeKey.ItemId).Returns(Item.Key);
            A.CallTo(() => fakeKey.Nouns).Returns(new List <string> {
                "key"
            });
            A.CallTo(() => fakeKey.IsPortable).Returns(true);
            A.CallTo(() => fakeKey.IsMatch("key")).Returns(true);
            inventory.AddItem(fakeKey);

            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;
            fakeCage.IsLocked       = false;
            fakeCage.ItemIdToUnlock = Item.Key;

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

            // Assert
            Assert.IsFalse(fakeCage.IsLocked);
            Assert.IsFalse(result);
        }