Exemplo n.º 1
0
        public void GoShouldWork()
        {
            var adminThing = new AdminThing("some weirdo");

            adminThing.Unique = true;

            var room1 = new RoomThing("room one");
            var room2 = new RoomThing("room two");

            adminThing.Move(room1);

            var exit = new Exit("strange portal", room2);

            exit.Unique = true;

            exit.Move(room1);

            Assert.IsTrue(adminThing.Container == room1);

            Repl repl = new Repl();

            repl.Parse("l", adminThing);
            repl.Parse("go portal", adminThing);

            Assert.IsTrue(adminThing.Container == room2);
        }
Exemplo n.º 2
0
        public void ShouldDeSerialize()
        {
            var adminThing       = new AdminThing("some weirdo");
            var serializedString = adminThing.Serialize();
            var newThing         = Thing.DeSerialize <AdminThing>(serializedString);

            Assert.IsTrue(newThing != null);
        }
Exemplo n.º 3
0
        public void TakeShouldCommunicate()
        {
            var adminThing = new AdminThing("some weirdo");
            var roomThing  = new RoomThing();

            adminThing.Move(roomThing);

            Parser repl = new Parser();

            var lastMessage = adminThing.LastMessage;

            repl.Parse("take ugly dead fish", adminThing);

            Assert.IsTrue(adminThing.LastMessage != lastMessage);
        }
Exemplo n.º 4
0
        public void ShouldPutRockOnTable()
        {
            var adminThing = new AdminThing("some weirdo");
            var roomThing  = new RoomThing();

            adminThing.Move(roomThing);
            var tableThing = new AdminThing("ordinary table");

            tableThing.Unique = false;
            var rockThing = new AdminThing("rock");

            Parser repl = new Parser();

            repl.Parse("take rock", repl.AdminThing);
            repl.Parse("put rock on table", repl.AdminThing);
        }
Exemplo n.º 5
0
        public void TakeShouldWork()
        {
            var adminThing = new AdminThing("some weirdo");
            var roomThing  = new RoomThing();

            adminThing.Move(roomThing);
            var uselessThing = new Thing("useless thing");

            //uselessThing.AddVerb("take", new Thing.AllowUsageAsDirObjDelegate((taker, myself) => { return true; }));
            uselessThing.AddDirectObjectHandler("take", new Func <Thing, Thing, bool>((taker, myself) => { return(true); }));
            uselessThing.Move(roomThing);

            Repl repl = new Repl();

            repl.Parse("look", adminThing);

            Assert.IsFalse(adminThing.ShallowInventory.Contains(uselessThing));
            repl.Parse("take thing", adminThing);
            Assert.IsTrue(adminThing.ShallowInventory.Contains(uselessThing));
        }
Exemplo n.º 6
0
        public void DefaultThingShouldBeADirectObjectOfTake()
        {
            var adminThing = new AdminThing("some weirdo");
            var roomThing  = new RoomThing();

            adminThing.Move(roomThing);

            var uglyDeadFish = new OrdinaryThing("ugly dead fish");

            uglyDeadFish.Move(roomThing);

            Parser repl = new Parser();

            var lastMessage = adminThing.LastMessage;

            repl.Parse("take ugly dead fish", adminThing);

            Assert.IsTrue(adminThing.LastMessage != lastMessage);

            Assert.IsTrue(adminThing.ShallowInventory.Contains(uglyDeadFish));
        }
Exemplo n.º 7
0
        public void DropShouldWork()
        {
            var adminThing = new AdminThing("some weirdo");
            var roomThing  = new RoomThing();

            adminThing.Move(roomThing);
            var uselessThing = new Thing("useless thing");

            //uselessThing.AddVerb("take", new Thing.AllowUsageAsDirObjDelegate((taker, myself) => { return true; }));
            uselessThing.AddDirectObjectHandler("take", new Func <Thing, Thing, bool>((taker, myself) => { return(true); }));
            uselessThing.AddDirectObjectHandler("drop", new Func <Thing, Thing, bool>((dropper, myself) =>
            {
                if (!dropper.ShallowInventory.Contains(myself))
                {
                    dropper.Tell(Messages.PersonalAction(dropper, "You aren't holding {d1}", dropper, myself));
                    return(false);
                }

                return(true);
            }));

            uselessThing.Move(roomThing);

            Repl repl = new Repl();

            repl.Parse("look", adminThing);

            Assert.IsFalse(adminThing.ShallowInventory.Contains(uselessThing));
            repl.Parse("take thing", adminThing);
            Assert.IsTrue(adminThing.ShallowInventory.Contains(uselessThing));

            repl.Parse("drop thing", adminThing);
            Assert.IsFalse(adminThing.ShallowInventory.Contains(uselessThing));

            Assert.IsTrue(roomThing.ShallowInventory.Contains(uselessThing));
        }
Exemplo n.º 8
0
 public void ShouldSerialize()
 {
     var adminThing       = new AdminThing("some weirdo");
     var serializedString = adminThing.Serialize();
 }