Пример #1
0
        public void DrawOnMapMin()
        {
            // verify it fills up the entire square area!
            var roomGen = new RoomGenBlocked <ITiledGenContext>
            {
                BlockWidth   = new RandRange(2),
                BlockHeight  = new RandRange(1),
                BlockTerrain = new TestTile(1),
            };

            string[] inGrid =
            {
                "XXXXXXXX",
                "XXXXXXXX",
                "XXXXXXXX",
                "XXXXXXXX",
                "XXXXXXXX",
                "XXXXXXXX",
                "XXXXXXXX",
            };

            string[] outGrid =
            {
                "XXXXXXXX",
                "X......X",
                "X.XX...X",
                "X......X",
                "X......X",
                "XXXXXXXX",
                "XXXXXXXX",
            };

            TestGenContext testContext   = TestGenContext.InitGridToContext(inGrid);
            TestGenContext resultContext = TestGenContext.InitGridToContext(outGrid);

            Mock <IRandom> testRand = new Mock <IRandom>(MockBehavior.Strict);

            testRand.Setup(p => p.Next(1, 1)).Returns(1);
            testRand.Setup(p => p.Next(2, 2)).Returns(2);
            testRand.Setup(p => p.Next(1, 3)).Returns(1);
            testRand.Setup(p => p.Next(1, 2)).Returns(1);

            testContext.SetTestRand(testRand.Object);
            roomGen.PrepareSize(testRand.Object, new Loc(6, 4));
            roomGen.SetLoc(new Loc(1, 1));

            roomGen.DrawOnMap(testContext);
            Assert.That(testContext.Tiles, Is.EqualTo(resultContext.Tiles));
            testRand.Verify(p => p.Next(1, 1), Times.Exactly(1));
            testRand.Verify(p => p.Next(2, 2), Times.Exactly(1));
            testRand.Verify(p => p.Next(1, 3), Times.Exactly(1));
            testRand.Verify(p => p.Next(1, 2), Times.Exactly(1));
        }
Пример #2
0
        public void ProposeSize()
        {
            // just check for corner cases
            Mock <IRandom> testRand = new Mock <IRandom>(MockBehavior.Strict);

            testRand.Setup(p => p.Next(3, 5)).Returns(3);
            testRand.Setup(p => p.Next(4, 7)).Returns(4);
            var roomGen = new RoomGenBlocked <ITiledGenContext>(new TestTile(1), new RandRange(3, 5), new RandRange(4, 7), RandRange.Empty, RandRange.Empty);

            Loc compare = roomGen.ProposeSize(testRand.Object);

            Assert.That(compare, Is.EqualTo(new Loc(3, 4)));
            testRand.Verify(p => p.Next(3, 5), Times.Exactly(1));
            testRand.Verify(p => p.Next(4, 7), Times.Exactly(1));
        }