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 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)); }); } }
public void TestHelloDialogSendRequest() { Mock <IMessageTransmitter> messageTransmitterMock = new Mock <IMessageTransmitter>(); messageTransmitterMock.Setup(x => x.SendRequest <HelloRequest, HelloResponse>(It.IsAny <HelloRequest>())).Returns <HelloRequest>(( HelloRequest request ) => { return(( HelloResponse )(TestData.HelloResponse.Object.Message)); }); using (IPharmacyInventorySystemDialogProvider dialogProvider = new PharmacyInventorySystemDialogProvider()) { dialogProvider.Connect(messageTransmitterMock.Object); HelloResponse response = dialogProvider.HelloDialog.SendRequest(( HelloRequest )(TestData.HelloRequest.Object.Message)); Assert.AreEqual(TestData.HelloResponse.Object.Message, response); } }