public static void Test_Null_Reciever()
        {
            //arrange
            Mock<StatusChangePayload> payload = new Mock<StatusChangePayload>(MockBehavior.Strict);
            StatusMessage message = new StatusMessage(payload.Object);

            //assert
            Assert.Throws<ArgumentNullException>(() => message.Dispatch(null, null)); //expect an exception
        }
        public static void Test_Dispatch()
        {
            //arrange
            Mock<StatusChangePayload> payload = new Mock<StatusChangePayload>(MockBehavior.Strict);
            Mock<INetworkMessageReceiver> reciever = new Mock<INetworkMessageReceiver>();

            //act
            StatusMessage message = new StatusMessage(payload.Object);
            message.Dispatch(reciever.Object, null);

            //assert
            //We check that the proper method was called.
            reciever.Verify(x => x.OnNetworkMessageReceive(message, null), Times.Once());
        }