public void A_通常の送受信()
        {
            var mock = Substitute.For <IObserver <SignalWithValueTupleParameter> >();

            Receiver.Receive().Subscribe(mock.OnNext);

            Publisher.Publish(SignalWithValueTupleParameter.Create());
            Publisher.Publish(SignalWithValueTupleParameter.Create());

            mock.Received(2).OnNext(Arg.Any <SignalWithValueTupleParameter>());
        }
        public void B_異なるインスタンスでも通す()
        {
            var mock = Substitute.For <IObserver <SignalWithValueTupleParameter> >();

            var signalForPublish = SignalWithValueTupleParameter.Create();
            var signalForReceive = SignalWithValueTupleParameter.Create();

            Assert.False(ReferenceEquals(signalForPublish, signalForReceive));

            Receiver.Receive(signalForReceive).Subscribe(mock.OnNext);

            Publisher.Publish(signalForPublish);

            mock.Received().OnNext(signalForPublish);
        }