public async Task CallServicesAsyncNullListTest() { var serviceRepository = Substitute.For <IServiceRepository>(); var dynamicService = Substitute.For <IDynamicService>(); var cachedService = Substitute.For <ICachedService>(); var staticService = Substitute.For <IStaticService>(); var taskScheduler = Substitute.For <ITaskScheduler>(); var cache = Substitute.For <ICache>(); var sut = new ServiceBrokerService(serviceRepository, dynamicService, cachedService, staticService, taskScheduler, cache); ServiceBrokerResponse actual = await sut.CallServicesAsync(null, "region", TimeSpan.Zero); Assert.IsNull(actual); }
public async Task CallServicesAsyncTimeoutServiceTest() { Guid serviceGuid = Guid.NewGuid(); var serviceInfo = new DynamicServiceInfo { Id = serviceGuid, }; Guid[] serviceAndTokenIds = new[] { serviceGuid }; var cacheRegion = "region"; var serviceRepository = Substitute.For <IServiceRepository>(); var dynamicService = Substitute.For <IDynamicService>(); var cachedService = Substitute.For <ICachedService>(); var staticService = Substitute.For <IStaticService>(); var taskScheduler = Substitute.For <ITaskScheduler>(); var cache = Substitute.For <ICache>(); serviceRepository.GetServicesAndTokens(serviceAndTokenIds).Returns(new[] { serviceInfo }); dynamicService.CallService(serviceInfo, cacheRegion, CancellationToken.None, null) .ReturnsForAnyArgs(Task.Run(async() => { await Task.Delay(10); return(new ServiceResponse()); })); var sut = new ServiceBrokerService(serviceRepository, dynamicService, cachedService, staticService, taskScheduler, cache); ServiceBrokerResponse actual = await sut.CallServicesAsync(serviceAndTokenIds, cacheRegion, TimeSpan.Zero); serviceRepository.Received(1).GetServicesAndTokens(serviceAndTokenIds); Assert.AreEqual(1, actual.ServiceResponses.Count()); ServiceResponse dynamicServiceResponse = actual.ServiceResponses.First(); Assert.AreEqual(ServiceResponseStatus.Timeout, dynamicServiceResponse.Status); Assert.IsNull(dynamicServiceResponse.Value); Assert.IsFalse(dynamicServiceResponse.TokenResponses.Any()); }
public async Task CallServicesAsyncDynamicServiceTest() { Guid serviceGuid = Guid.NewGuid(); var serviceInfo = new DynamicServiceInfo { Id = serviceGuid, }; Guid[] serviceAndTokenIds = new[] { serviceGuid }; var cacheRegion = "region"; var serviceResponse = "Service response"; var serviceRepository = Substitute.For <IServiceRepository>(); var dynamicService = Substitute.For <IDynamicService>(); var cachedService = Substitute.For <ICachedService>(); var staticService = Substitute.For <IStaticService>(); var taskScheduler = Substitute.For <ITaskScheduler>(); var cache = Substitute.For <ICache>(); serviceRepository.GetServicesAndTokens(serviceAndTokenIds).Returns(new[] { serviceInfo }); dynamicService.CallService(serviceInfo, cacheRegion, CancellationToken.None, null) .ReturnsForAnyArgs(Task.FromResult(new ServiceResponse { Value = serviceResponse })); var sut = new ServiceBrokerService(serviceRepository, dynamicService, cachedService, staticService, taskScheduler, cache); ServiceBrokerResponse actual = await sut.CallServicesAsync(serviceAndTokenIds, cacheRegion, TimeSpan.FromMilliseconds(10)); serviceRepository.Received(1).GetServicesAndTokens(serviceAndTokenIds); Assert.AreEqual(1, actual.ServiceResponses.Count()); ServiceResponse dynamicServiceResponse = actual.ServiceResponses.First(); Assert.AreEqual(ServiceResponseStatus.Success, dynamicServiceResponse.Status); Assert.AreEqual(serviceResponse, dynamicServiceResponse.Value); }