public void TestThatExchangeSendsTyped() { var results = new ConcurrentQueue <object>(); var logger = ConsoleLogger.TestInstance(); var queue = new AsyncMessageQueue(null); var exchange = new TestExchange(queue, logger); var accessExchange = exchange.AfterCompleting(2); var exchangeReceiver1 = new TestExchangeReceiver1(results, logger); var accessExchangeReceiver1 = exchangeReceiver1.AfterCompleting(1); var exchangeReceiver2 = new TestExchangeReceiver2(results, logger); var accessExchangeReceiver2 = exchangeReceiver2.AfterCompleting(1); exchange .Register(Covey <LocalType1, ExternalType1, ExchangeMessage> .Of( new TestExchangeSender(queue, logger), exchangeReceiver1, new TestExchangeAdapter1())) .Register(Covey <LocalType2, ExternalType2, ExchangeMessage> .Of( new TestExchangeSender(queue, logger), exchangeReceiver2, new TestExchangeAdapter2())); var local1 = new LocalType1("ABC", 123); exchange.Send(local1); var local2 = new LocalType2("DEF", 456); exchange.Send(local2); Assert.Equal(2, accessExchange.ReadFrom <int>("sentCount")); Assert.Equal(local1, accessExchangeReceiver1.ReadFrom <LocalType1>("getMessage")); Assert.Equal(local2, accessExchangeReceiver2.ReadFrom <LocalType2>("getMessage")); exchange.Close(); }
private void RegisterExchangeCoveys() { _exchange .Register(Covey <DoStepOne, DoStepOne, LocalExchangeMessage> .Of( _exchangeSender, _exchangeReceivers.DoStepOneReceiver, new LocalExchangeAdapter <DoStepOne, DoStepOne>())) .Register(Covey <DoStepTwo, DoStepTwo, LocalExchangeMessage> .Of( _exchangeSender, _exchangeReceivers.DoStepTwoReceiver, new LocalExchangeAdapter <DoStepTwo, DoStepTwo>())) .Register(Covey <DoStepThree, DoStepThree, LocalExchangeMessage> .Of( _exchangeSender, _exchangeReceivers.DoStepThreeReceiver, new LocalExchangeAdapter <DoStepThree, DoStepThree>())) .Register(Covey <DoStepFour, DoStepFour, LocalExchangeMessage> .Of( _exchangeSender, _exchangeReceivers.DoStepFourReceiver, new LocalExchangeAdapter <DoStepFour, DoStepFour>())) .Register(Covey <DoStepFive, DoStepFive, LocalExchangeMessage> .Of( _exchangeSender, _exchangeReceivers.DoStepFiveReceiver, new LocalExchangeAdapter <DoStepFive, DoStepFive>())); }
public IExchange Register <TLocal, TExternal, TExchange>(Covey <TLocal, TExternal, TExchange> covey) { _forwarder.Register(covey); return(this); }
public IExchange Register <TLocal, TExternal, TExchange>(Covey <TLocal, TExternal, TExchange> covey) => this;