コード例 #1
0
        public void CheckThatConnectingPipeCannotBeDeletedFromInexistentBlock()
        {
            var position = new Coordinate(5, 4);
            var pipe     = new ConnectingPipe(EdgeType.DOWN);

            mockBlock.Setup(x => x.HasShipComponent()).Returns(false);

            Assert.IsFalse(blueprintBuilder.DeleteConnectingPipe(position, pipe));
        }
コード例 #2
0
        public void CheckIfConnectingPipeIsDeletedCorrectly()
        {
            var position = new Coordinate(2, 3);
            var pipe     = new ConnectingPipe(EdgeType.DOWN);
            var key      = new PipePosition(position, pipe.Edge, EdgeType.COUNT);

            doubleEdgedPipes.Add(key, mockPipe.Object);
            blueprintBuilderViewModel.ConnectingPipeDeleted(mockBlueprint.Object, position, pipe);
            Assert.IsFalse(doubleEdgedPipes.ContainsKey(key));
        }
コード例 #3
0
        public void CannotAddConnectingPipeIfBlockInexistent()
        {
            var position = new Coordinate(5, 4);
            var pipe     = new ConnectingPipe(EdgeType.DOWN);

            mockBlock.Setup(x => x.HasShipComponent()).Returns(false);

            Assert.IsFalse(blueprintBuilder.AddConnectingPipe(position, pipe.Edge));
            Assert.AreEqual(0, mockBlock.Object.PipesWithOneEdge.Count());
        }
コード例 #4
0
        public void CheckThatPlacingConnectingPipeCallsbserver()
        {
            var position = new Coordinate(3, 4);
            var pipe     = new ConnectingPipe(EdgeType.RIGHT);

            blueprint.PlaceBlock(position, mockBlock.Object);
            blueprint.PlacePipe(position, pipe);

            mockObserver.Verify(obs => obs.ConnectingPipeAdded(It.IsAny <IBlueprint>(), position, pipe), Times.Once());
            mockBlock.Verify(block => block.AddPipe(pipe), Times.Once());
        }
コード例 #5
0
        public void CheckIfExistingConnectingPipeIsDeletedSuccessfully()
        {
            var position = new Coordinate(5, 4);
            var pipe     = new ConnectingPipe(EdgeType.DOWN);

            blocks.Set(position, mockBlock.Object);
            blocks.Get(position).AddPipe(pipe);
            mockBlock.Setup(x => x.HasShipComponent()).Returns(true);

            Assert.IsTrue(blueprintBuilder.DeleteConnectingPipe(position, pipe));
            Assert.AreEqual(0, mockBlock.Object.PipesWithOneEdge.Count());
        }
コード例 #6
0
        public void CheckThatIfAllConnectingPipesOnBlockAreDeletedShipComponentIsNot()
        {
            var position = new Coordinate(5, 4);
            var pipe     = new ConnectingPipe(EdgeType.DOWN);

            blocks.Set(position, mockBlock.Object);
            blocks.Get(position).AddPipe(pipe);
            mockBlock.Setup(x => x.HasShipComponent()).Returns(true);

            Assert.IsTrue(blueprintBuilder.DeleteConnectingPipe(position, pipe));
            Assert.AreEqual(0, mockBlock.Object.PipesWithOneEdge.Count());
            mockBlock.Verify(x => x.DeleteShipComponent(), Times.Never());
        }
コード例 #7
0
        public void CheckThatTryingToDeleteInexistentDoubleEdgedPipeButWithConnectingPipesThatCanComposeItDeletesTheConnectingPipes()
        {
            var position = new Coordinate(5, 4);
            var pipe1    = new ConnectingPipe(EdgeType.DOWN);
            var pipe2    = new ConnectingPipe(EdgeType.UP);
            var pipe     = new DoubleEdgedPipe(EdgeType.UP, EdgeType.DOWN);

            blocks.Set(position, mockBlock.Object);
            blocks.Get(position).AddPipe(pipe1);
            blocks.Get(position).AddPipe(pipe2);

            Assert.IsTrue(blueprintBuilder.DeleteDoubleEdgedPipe(position, pipe));
            Assert.AreEqual(0, mockBlock.Object.PipesWithOneEdge.Count());
        }
コード例 #8
0
        public void CheckThatDeletingBlockWithtShipComponentAndConnectingPipesAlsoDeletesTheShipComponentAndConnectingPipes()
        {
            var position = new Coordinate(5, 4);
            var pipe     = new ConnectingPipe(EdgeType.DOWN);

            blocks.Set(position, mockBlock.Object);
            blocks.Get(position).AddPipe(pipe);
            mockBlock.Setup(x => x.HasShipComponent()).Returns(true);
            mockBlock.SetupGet(m => m.ShipComponent).Returns(mockShipComponent.Object);

            Assert.IsTrue(blueprintBuilder.DeleteBlock(position));
            Assert.AreEqual(null, blocks[4, 5]);
            Assert.AreEqual(0, mockBlock.Object.PipesWithOneEdge.Count());
            mockBlock.Verify(x => x.DeleteShipComponent(), Times.Once());
        }
コード例 #9
0
        public void CreateConnectingPipeCurveCorrectly()
        {
            var position = new Coordinate(2, 3);
            var pipe     = new ConnectingPipe(EdgeType.DOWN);

            tiles.Set(position, mockTile.Object);

            ICurve curve = null;

            mockPipeFactory.Setup(factory => factory.Create(It.IsAny <StraightLineCurve>()))
            .Returns(mockPipe.Object)
            .Callback <StraightLineCurve>(curveParam => curve = curveParam);

            blueprintBuilderViewModel.ConnectingPipeAdded(mockBlueprint.Object, position, pipe);
            Assert.AreEqual(new Vector2(0, -1), curve.GetPoint(0));
            Assert.AreEqual(new Vector2(0, 0), curve.GetPoint(1));
        }
コード例 #10
0
 public void ConnectingPipeDeleted(IBlueprint blueprint, Coordinate position, ConnectingPipe pipe)
 {
     objectTable.DeletePipe(position, pipe.Edge, EdgeType.COUNT);
 }
コード例 #11
0
 public void ConnectingPipeAdded(IBlueprint blueprint, Coordinate position, ConnectingPipe pipe)
 {
     CreatePipeObject(blueprint, position, pipe.Edge, EdgeType.COUNT);
 }
コード例 #12
0
 public void ConnectingPipeDeleted(IBlueprint blueprint, Coordinate position, ConnectingPipe pipe)
 {
     throw new NotImplementedException();
 }
コード例 #13
0
        public void CheckThatIsEqualToForConnectingPipesFunctionsCorrectly()
        {
            var pipe = new ConnectingPipe(EdgeType.UP);

            Assert.IsTrue(connectingPipe.IsEqualTo(pipe));
        }
コード例 #14
0
 public void Init()
 {
     connectingPipe = new ConnectingPipe(EdgeType.UP);
 }