コード例 #1
0
        public void ExecuteWithNonSuccessfulResponseStates()
        {
            WaiterConfiguration waitConfig = new WaiterConfiguration();
            Mock <Func <IOciRequest, Task <IOciResponse> > > queryMock = new Mock <Func <IOciRequest, Task <IOciResponse> > >();

            queryMock.Setup(method => method(It.IsAny <IOciRequest>())).ThrowsAsync(new OciException(System.Net.HttpStatusCode.BadGateway, "", "", ""));

            var agent = new WaiterAgent <IOciRequest, IOciResponse>(
                requestMock.Object,
                queryMock.Object,
                _ => false
                );

            Assert.Throws <OciException>(() => agent.Execute(waitConfig));
        }
コード例 #2
0
        public void ExecuteWithSuccessfulResponse()
        {
            Mock <Func <IOciRequest, Task <IOciResponse> > > queryMock = new Mock <Func <IOciRequest, Task <IOciResponse> > >();

            queryMock.Setup(method => method(It.IsAny <IOciRequest>())).ReturnsAsync(responseMock.Object);

            var agent = new WaiterAgent <IOciRequest, IOciResponse>(
                requestMock.Object,
                queryMock.Object,
                _ => true
                );

            var response = agent.Execute(new WaiterConfiguration());

            queryMock.Verify(mock => mock.Invoke(It.IsAny <IOciRequest>()), Times.Exactly(1));
        }
コード例 #3
0
        public void ExecuteWithAllowed404s()
        {
            WaiterConfiguration waitConfig = new WaiterConfiguration();
            Mock <Func <IOciRequest, Task <IOciResponse> > > queryMock = new Mock <Func <IOciRequest, Task <IOciResponse> > >();

            queryMock.Setup(method => method(It.IsAny <IOciRequest>())).ThrowsAsync(new OciException(System.Net.HttpStatusCode.BadGateway, "", "", "", new OciException(System.Net.HttpStatusCode.NotFound, "", "", "")));

            var agent = new WaiterAgent <IOciRequest, IOciResponse>(
                requestMock.Object,
                queryMock.Object,
                _ => false,
                allow404s: true
                );

            var response = agent.Execute(waitConfig);

            Assert.Null(response);
            queryMock.Verify(mock => mock.Invoke(It.IsAny <IOciRequest>()), Times.Exactly(1));
        }
コード例 #4
0
 public Waiter(WaiterConfiguration configuration, WaiterAgent <Request, Response> agent)
 {
     this.configuration = configuration;
     this.agent         = agent;
 }