public async Task <TResult> RequestAsync <TRequest, TResult>(TRequest request) where TRequest : class, new() where TResult : class, new() { var xtResult = await _rqRep.RequestAsync <TRequest, TResult>(request); ThrowOnNonSuccess(xtResult); return(xtResult.GetResult()); }
internal static async Task RequestAndWriteResultAsync(RqRep rqRep) { XtResult <Response> result = await rqRep.RequestAsync <Request, Response>(new Request()); System.Console.WriteLine(result); if (result.IsSuccess) { System.Console.WriteLine("SUCCESS!! " + result.GetResult().InsideResponse); } else { System.Console.WriteLine("FAILURE!! " + result.Exception); } }
public async Task SimpleRequestAndReply_Fails_when_factory_throws_Exception_But_still_gets_an_answer(object configuration) { // Arrange var sut = new RqRep((SocketConfiguration)configuration); sut.Respond <Request, Response>(rq => throw new TimeoutException()); // Act var xtResult = await sut.RequestAsync <Request, Response>(new Request { RequestNumber = 42 }); // Assert Assert.False(xtResult.IsSuccess); Assert.NotNull(xtResult.Exception); sut.Dispose(); }
public async Task SimpleRequestAndReply_InProc() { // Arrange var sut = new RqRep(new ConfigurationTestData().GetSocketConfigInProc); sut.Respond <Request, Response>(rq => new Response { ResponseNumber = rq.RequestNumber }); // Act var xtResult = await sut.RequestAsync <Request, Response>(new Request { RequestNumber = 42 }); // Assert Assert.True(xtResult.IsSuccess); Assert.Equal(42, xtResult.GetResult().ResponseNumber); sut.Dispose(); }