Exemplo n.º 1
0
        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>()));
 }
Exemplo n.º 3
0
 public IExchange Register <TLocal, TExternal, TExchange>(Covey <TLocal, TExternal, TExchange> covey)
 {
     _forwarder.Register(covey);
     return(this);
 }
Exemplo n.º 4
0
 public IExchange Register <TLocal, TExternal, TExchange>(Covey <TLocal, TExternal, TExchange> covey) => this;