public void TestHelloDialogSendRequestWithTimeout() { TimeSpan timeout = TimeSpan.FromMilliseconds(1); Mock <IMessageStreamReader> messageStreamReaderMock = new Mock <IMessageStreamReader>(); messageStreamReaderMock.Setup(x => x.Subscribe(It.IsAny <IObserver <IMessageEnvelope> >())).Callback <IObserver <IMessageEnvelope> >(async(IObserver <IMessageEnvelope> observer) => { await Task.Delay(timeout.Add(TimeSpan.FromMilliseconds(1))); }); IMessageStreamWriter messageStreamWriter = new XmlMessageStreamWriter(Stream.Null); using (IPharmacyInventorySystemDialogProvider dialogProvider = new PharmacyInventorySystemDialogProvider()) { dialogProvider.Connect(new MessageTransmitter(messageStreamReaderMock.Object, messageStreamWriter, Stream.Null, timeout)); Assert.ThrowsException <MessageTransmissionException>(() => { dialogProvider.HelloDialog.SendRequest(( HelloRequest )(TestData.HelloRequest.Object.Message)); }); } }
public void TestHelloDialogSendResponse() { using (MemoryStream stream = new MemoryStream()) { Mock <IMessageStreamReader> messageStreamReaderMock = new Mock <IMessageStreamReader>(); IMessageStreamWriter messageStreamWriter = new XmlMessageStreamWriter(stream); using (IStorageSystemDialogProvider dialogProvider = new StorageSystemDialogProvider()) { dialogProvider.Connect(new MessageTransmitter(messageStreamReaderMock.Object, messageStreamWriter, stream)); dialogProvider.HelloDialog.SendResponse(( HelloResponse )(TestData.HelloResponse.Object.Message)); stream.Position = 0; using (IMessageStreamReader messageStreamReader = new XmlMessageStreamReader(stream)) { Mock <IObserver <IMessageEnvelope> > observerMock = new Mock <IObserver <IMessageEnvelope> >(); observerMock.Setup(x => x.OnNext(It.IsAny <IMessageEnvelope>())).Callback <IMessageEnvelope>(( IMessageEnvelope value ) => { Assert.AreEqual(TestData.HelloResponse.Object.Message, value.Message); }); messageStreamReader.Subscribe(observerMock.Object); } } } }
public void TestHelloDialogSendRequestWithoutResponse() { IMessageStreamReader messageStreamReader = new XmlMessageStreamReader(Stream.Null); IMessageStreamWriter messageStreamWriter = new XmlMessageStreamWriter(Stream.Null); using (IPharmacyInventorySystemDialogProvider dialogProvider = new PharmacyInventorySystemDialogProvider()) { dialogProvider.Connect(new MessageTransmitter(messageStreamReader, messageStreamWriter, Stream.Null)); Assert.ThrowsException <MessageTransmissionException>(() => { dialogProvider.HelloDialog.SendRequest(( HelloRequest )(TestData.HelloRequest.Object.Message)); }); } }