public void CallServiceFaultyServiceTest() { var serviceId = Guid.NewGuid(); var serviceAndTokenIds = new List <Guid> { serviceId }; 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).ReturnsForAnyArgs(new ServiceInfo[0]); var sut = new ServiceBrokerService(serviceRepository, dynamicService, cachedService, staticService, taskScheduler, cache); ServiceResponse actual = sut.CallService(serviceId, cacheRegion, TimeSpan.FromMilliseconds(10), new List <KeyValuePair <string, string> >()); serviceRepository.ReceivedWithAnyArgs(1).GetServicesAndTokens(serviceAndTokenIds); Assert.AreEqual(ServiceResponseStatus.Error, actual.Status); Assert.IsNull(actual.Value); }
public void CallServiceDynamicServiceTest() { Guid serviceId = Guid.NewGuid(); var serviceInfo = new DynamicServiceInfo { Id = serviceId, }; var serviceAndTokenIds = new List <Guid> { serviceId }; var cacheRegion = "region"; var serviceResponse = "Service response"; // ReSharper disable once CollectionNeverUpdated.Local var additionalParameters = new List <KeyValuePair <string, string> >(); 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).ReturnsForAnyArgs(new[] { serviceInfo }); dynamicService.CallService(serviceInfo, cacheRegion, CancellationToken.None, additionalParameters) .ReturnsForAnyArgs(Task.FromResult(new ServiceResponse { Value = serviceResponse })); var sut = new ServiceBrokerService(serviceRepository, dynamicService, cachedService, staticService, taskScheduler, cache); ServiceResponse actual = sut.CallService(serviceId, cacheRegion, TimeSpan.FromMilliseconds(10), additionalParameters); serviceRepository.ReceivedWithAnyArgs(1).GetServicesAndTokens(serviceAndTokenIds); dynamicService.ReceivedWithAnyArgs(1).CallService(serviceInfo, cacheRegion, CancellationToken.None, additionalParameters); Assert.AreEqual(ServiceResponseStatus.Success, actual.Status); Assert.AreEqual(serviceResponse, actual.Value); }