public void ReceiveOpenedBorderToFulfill(bool firstHalf, bool secondHalf, bool exception) { // test with offset, proving previous openedborders are properly transferred // test error case, in which no bordertofulfill is opened Mock <IRandom> testRand = new Mock <IRandom>(MockBehavior.Strict); var roomGenTo = new TestRoomGen <ITiledGenContext>(); var roomGenFrom = new TestRoomGen <ITiledGenContext>(); roomGenTo.PrepareSize(testRand.Object, new Loc(3, 2)); roomGenTo.SetLoc(new Loc(2, 0)); roomGenFrom.PrepareSize(testRand.Object, new Loc(4, 2)); roomGenFrom.SetLoc(new Loc(0, 2)); roomGenFrom.PublicOpenedBorder[Dir4.Up][0] = firstHalf; roomGenFrom.PublicOpenedBorder[Dir4.Up][1] = firstHalf; roomGenFrom.PublicOpenedBorder[Dir4.Up][2] = secondHalf; roomGenFrom.PublicOpenedBorder[Dir4.Up][3] = secondHalf; if (exception) { Assert.Throws <ArgumentException>(() => { roomGenTo.ReceiveOpenedBorder(roomGenFrom, Dir4.Down); }); } else { roomGenTo.ReceiveOpenedBorder(roomGenFrom, Dir4.Down); var expectedBorderToFulfill = new Dictionary <Dir4, bool[]> { [Dir4.Down] = new bool[] { true, true, false }, [Dir4.Left] = new bool[] { false, false }, [Dir4.Up] = new bool[] { false, false, false }, [Dir4.Right] = new bool[] { false, false }, }; Assert.That(roomGenTo.PublicBorderToFulfill, Is.EqualTo(expectedBorderToFulfill)); } }
public void ReceiveOpenedBorder(int x1, int y1, int w1, int h1, int x2, int y2, int w2, int h2, Dir4 dir, int expectedStart, int expectedEnd, bool exception) { Mock <IRandom> testRand = new Mock <IRandom>(MockBehavior.Strict); var roomGenTo = new TestRoomGen <ITiledGenContext>(); var roomGenFrom = new TestRoomGen <ITiledGenContext>(); roomGenTo.PrepareSize(testRand.Object, new Loc(w1, h1)); roomGenTo.SetLoc(new Loc(x1, y1)); roomGenFrom.PrepareSize(testRand.Object, new Loc(w2, h2)); roomGenFrom.SetLoc(new Loc(x2, y2)); for (int ii = 0; ii < roomGenFrom.PublicOpenedBorder[dir.Reverse()].Length; ii++) { roomGenFrom.PublicOpenedBorder[dir.Reverse()][ii] = true; } if (exception) { Assert.Throws <ArgumentException>(() => { roomGenTo.ReceiveOpenedBorder(roomGenFrom, dir); }); } else { roomGenTo.ReceiveOpenedBorder(roomGenFrom, dir); IntRange newRange = roomGenTo.RoomSideReqs[dir][0]; Assert.That(newRange, Is.EqualTo(new IntRange(expectedStart, expectedEnd))); } }
public void ReceiveOpenedBorderToFulfillAlreadyFilled() { // test error case, in which no borderfill is opened by the openedborder but the tiles already exist Mock <IRandom> testRand = new Mock <IRandom>(MockBehavior.Strict); var roomGenTo = new TestRoomGen <ITiledGenContext>(); var roomGenFrom = new TestRoomGen <ITiledGenContext>(); roomGenTo.PrepareSize(testRand.Object, new Loc(3, 2)); roomGenTo.SetLoc(new Loc(2, 0)); roomGenFrom.PrepareSize(testRand.Object, new Loc(4, 2)); roomGenFrom.SetLoc(new Loc(0, 2)); roomGenFrom.PublicOpenedBorder[Dir4.Up][0] = true; roomGenFrom.PublicOpenedBorder[Dir4.Up][1] = true; roomGenTo.PublicBorderToFulfill[Dir4.Down][0] = true; roomGenTo.PublicBorderToFulfill[Dir4.Down][1] = true; Assert.Throws <ArgumentException>(() => { roomGenTo.ReceiveOpenedBorder(roomGenFrom, Dir4.Down); }); }