예제 #1
0
        public void Setting_InboundPipe_Subscribes_To_Content_StatusChangeEvent_Of_Pipe_When_Pipe_Is_Replaced()
        {
            //Arrange
            var port = new InputNetworkPort();
            var mockPipe = new Mock<INetworkPipe>();
            var mockPipe2 = new Mock<INetworkPipe>();
            var inPort = port as InputNetworkPort;
            // the event should not be fired.
            var helper = new HelperForInputPorts(); ;
            // final check is if this even is fired
            port.InputAvailabilityChanged += new InputAvailabilityChangedEventHandler<IInputNetworkPort, InputAvailabilityChangedEventArgs>
                                            (helper.InputAvailabilityChanged_DummyHandler);

            inPort.InboundPipe = mockPipe.Object;  // initialize

            //Act
            inPort.InboundPipe = mockPipe2.Object; // replace

            // raise the event the port subscribed to
            mockPipe2.Raise(m => m.StatusChanged += null, new PipeStatusChangeEventArgs(PayLoadStatus.Unavailable, PayLoadStatus.Available));

            //Assert
            Assert.Equal(1, helper.InputAvailabilityChanged_TimesCalled);
            Assert.NotNull(helper.RecievedEventArgs);
            Assert.Same(inPort, helper.RecievedSender);
        }
예제 #2
0
        public void _inPipe_ContentStatusChangedEventHandler_Fires_Input_AvailabilityChangedEvent()
        {
            //Arrange
            var port = new InputNetworkPort();
            var helper = new HelperForInputPorts();
            var mockPipe = new Mock<INetworkPipe>();
            port.InputAvailabilityChanged += new InputAvailabilityChangedEventHandler<IInputNetworkPort, InputAvailabilityChangedEventArgs>
                                                (helper.InputAvailabilityChanged_DummyHandler);
            var ea = new PipeStatusChangeEventArgs(PayLoadStatus.Unavailable, PayLoadStatus.Available);

            //Act
            port._inPipe_ContentStatusChanged(mockPipe.Object, ea);

            //Assert
            Assert.Equal(1, helper.InputAvailabilityChanged_TimesCalled);
            Assert.NotNull(helper.RecievedEventArgs);
        }
예제 #3
0
        public void Setting_InboundPipe_Fires_The_ConnectionChangingEvent_With_Action_Set_2_Replace_Before_Value_Changes()
        {
            //Arrange
            var port = new InputNetworkPort();
            var mockPipe = new Mock<INetworkPipe>();
            var mockPipe2 = new Mock<INetworkPipe>();
            var helper = new HelperForInputPorts();
            ;
            port.ConnectionChanging += new ConnectionChangingEventHandler<IInputNetworkPort, ConnectionChangingEventArgs>
                                        (helper.InputConnecting_DummyHandler);

            port.InboundPipe = mockPipe.Object;   // set pipe, then delete it

            //Act
            port.InboundPipe = mockPipe2.Object;   // replace

            //Assert
            Assert.Equal(2, helper.InputConnecting_TimesCalled);
            var resultArgs = helper.RecievedEventArgs as ConnectionChangingEventArgs;
            Assert.NotNull(resultArgs);
            Assert.Equal(ConnectionAction.Replace, resultArgs.Action);
        }
예제 #4
0
        public void Setting_InboundPipe_Fires_The_ConnectionChangedEvent_With_Action_Set_2_Delete_After_Value_Changes()
        {
            //Arrange
            var port = new InputNetworkPort();
            var mockPipe = new Mock<INetworkPipe>();
            var helper = new HelperForInputPorts();

            port.ConnectionChanged += new ConnectionChangedEventHandler<IInputNetworkPort, ConnectionChangedEventArgs>
                                        (helper.InputConnected_DummyHandler);

            port.InboundPipe = mockPipe.Object;   // set pipe, then delete it

            //Act
            port.InboundPipe = null;   // effectively deletes the connection

            //Assert
            Assert.Equal(2, helper.InputConnected_TimesCalled); // firse 2x, for each setting
            var resultArgs = helper.RecievedEventArgs as ConnectionChangedEventArgs;
            Assert.NotNull(resultArgs);
            Assert.Equal(ConnectionAction.Delete, resultArgs.Action);
        }
예제 #5
0
        public void Setting_InboundPipe_Fires_The_ConnectionChangedEvent_With_Action_Set_2_Add_After_Value_Changes()
        {
            //Arrange
            var port = new InputNetworkPort();
            var mockPipe = new Mock<INetworkPipe>();
            var helper = new HelperForInputPorts();

            port.ConnectionChanged += new ConnectionChangedEventHandler<IInputNetworkPort, ConnectionChangedEventArgs>
                                        (helper.InputConnected_DummyHandler);

            //Act
            port.InboundPipe = mockPipe.Object;

            //Assert
            Assert.Equal(1, helper.InputConnected_TimesCalled);
            var resultArgs = helper.RecievedEventArgs as ConnectionChangedEventArgs;
            Assert.NotNull(resultArgs);
            Assert.Equal(ConnectionAction.Add, resultArgs.Action);
        }
예제 #6
0
        public void Setting_InboundPipe_Does_Not_Fire_ConnectionChangingEvent_When_Null_Value_Does_Not_Change()
        {
            //Arrange
            var port = new InputNetworkPort();
            var helper = new HelperForInputPorts();
            port.ConnectionChanging += new ConnectionChangingEventHandler<IInputNetworkPort, ConnectionChangingEventArgs>
                                        (helper.InputConnecting_DummyHandler);

            //Act
            port.InboundPipe = null;

            //Assert
            Assert.Equal(0, helper.InputConnecting_TimesCalled);
            var resultArgs = helper.RecievedEventArgs as ConnectionChangingEventArgs;
            Assert.Null(resultArgs);
        }
예제 #7
0
        public void Setting_InboundPipe_Does_Not_Fire_ConnectionChangingEvent_When_Non_Null_Value_Does_Not_Change()
        {
            //Arrange
            var port = new InputNeutralPort();
            var mockPipe = new Mock<INeutralPipe>();
            // the event should not be fired.
            var helper = new HelperForInputPorts();

            port.InboundPipe = mockPipe.Object;
            port.ConnectionChanging += new ConnectionChangingEventHandler<IInputNeutralPort, ConnectionChangingEventArgs>
                                        (helper.InputConnecting_DummyHandler);

            //Act
            port.InboundPipe = mockPipe.Object;

            //Assert
            Assert.Equal(0, helper.InputConnecting_TimesCalled);
            var resultArgs = helper.RecievedEventArgs as ConnectionChangingEventArgs;
            Assert.Null(resultArgs);
        }