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(); }
protected bool Equals(LocalType2 other) => Attribute1 == other.Attribute1 && Attribute2 == other.Attribute2;