Ejemplo n.º 1
0
        public void ConvertToDungeon_Dungeon_HasDoor_IfMapContainsDoor()
        {
            var converter = new MapConverter();
            var map = new Map(5, 5);
            var cell1 = map[1, 2];
            var cell2 = map[1, 2];
            map.CreateCorridorSide(map[1, 2], map[2, 2], Dir.E, Side.Door);

            var dungeon = converter.ConvertToDungeon(map);

            Assert.That(dungeon,
                Has.Some.With.Property(nameof(Cell.Type)).EqualTo(XType.DoorClosed));
        }
Ejemplo n.º 2
0
        public void ConvertToDungeon_Dungeon_HasSomeEmptyCells_IfMapContainsCorridor()
        {
            var converter = new MapConverter();
            var map = new Map(5, 5);
            map.CreateCorridorSide(map[1, 2], map[2, 2], Dir.E, Side.Empty);

            var dungeon = converter.ConvertToDungeon(map);

            Assert.That(dungeon,
                Has.Some.With.Property(nameof(Cell.Type)).EqualTo(XType.Empty),
                "Non borders should be empty.");

            Assert.That(
                dungeon.Where(c => c.Location.X == 0
                    || c.Location.X == dungeon.Width - 1
                    || c.Location.Y == 0
                    || c.Location.Y == dungeon.Height - 1),
                Has.All.With.Property(nameof(Cell.Type)).EqualTo(XType.Wall),
                "Borders should be walls.");
        }
Ejemplo n.º 3
0
        public void CreateCorridorSide_ThrowsForNonAjacentCells(
            int x1, int y1, int x2, int y2, Dir corridorDirection)
        {
            var map = new Map(5, 5);

            var startCell = map[x1, y1];
            var endCell = map[x2, y2];

            Assert.That(() =>
                map.CreateCorridorSide(startCell, endCell, corridorDirection, Side.Empty),
                Throws.InvalidOperationException);
        }
Ejemplo n.º 4
0
        public void CreateCorridorSide_CorridorCreatedCorrectly(
            int x1, int y1, int x2, int y2, Dir corridorDir, Dir oppositeDir)
        {
            var map = new Map(5, 5);
            var startCell = map[x1, y1];
            var endCell = map[x2, y2];
            var emptySide = Side.Empty;

            map.CreateCorridorSide(startCell, endCell, corridorDir, emptySide);

            Assert.That(startCell.Sides[corridorDir], Is.EqualTo(emptySide));
            Assert.That(startCell.Sides.Where(s => s.Key != corridorDir),
                Has.All.With.Property("Value").EqualTo(Side.Wall));

            Assert.That(endCell.Sides[oppositeDir], Is.EqualTo(emptySide));
            Assert.That(endCell.Sides.Where(s => s.Key != oppositeDir),
                Has.All.With.Property("Value").EqualTo(Side.Wall));
        }
Ejemplo n.º 5
0
        public void CreateCorridorSide_CorridorCreatedCorrectly()
        {
            var map = new Map(5, 5);

            Assert.That(() => map.CreateCorridorSide(
                map[0, 0], map[0, 1], Dir.S, Side.Wall),
                Throws.ArgumentException);
        }