コード例 #1
0
        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);
        }
コード例 #2
0
        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());
        }
コード例 #3
0
        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);
        }