Beispiel #1
0
        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());
        }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
0
        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();
        }
Beispiel #4
0
        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();
        }