private void SetupServiceMock() { _serviceMock = Substitute.For <ICachingTestService>(); _serviceMock.CallService().Returns(_ => { return(Task.FromResult(_serviceResult)); }); _serviceMock.CallServiceWithAttRefreshTime().Returns(_ => { return(Task.FromResult(_serviceResult)); }); _serviceMock.CallServiceWithoutAttRefreshTime().Returns(_ => { return(Task.FromResult(_serviceResult)); }); _serviceMock.CallRevocableService(Arg.Any <string>()).Returns(async s => { var result = _serviceResult; await _revokeDelay; return(new Revocable <string> { Value = result, RevokeKeys = new[] { s.Args()[0].ToString() } }); }); _serviceResult = FirstResult; var serviceProxyMock = Substitute.For <IServiceProxyProvider <ICachingTestService> >(); serviceProxyMock.Client.Returns(_serviceMock); _kernel.Rebind <IServiceProxyProvider <ICachingTestService> >().ToConstant(serviceProxyMock); }
private async Task ResultShouldBe(string expectedResult, string message = null, ServiceMethod serviceMethod = ServiceMethod.CallService) { string result = null; switch (serviceMethod) { case ServiceMethod.CallService: result = await _proxy.CallService(); break; case ServiceMethod.CallServiceWithAttRefreshTime: result = await _proxy.CallServiceWithAttRefreshTime(); break; case ServiceMethod.CallServiceWithoutAttRefreshTime: result = await _proxy.CallServiceWithoutAttRefreshTime(); break; default: throw new ArgumentOutOfRangeException(nameof(serviceMethod), serviceMethod, null); } result.ShouldBe(expectedResult, message); }