Beispiel #1
0
        public async Task GetValueAsync_WhenMissingService_ReturnsNull()
        {
            var threadingService = IProjectThreadingServiceFactory.Create();
            var serviceProvider  = IAsyncServiceProviderFactory.ImplementGetServiceAsync(type => null);

            var service = CreateInstance <string, string>(serviceProvider: serviceProvider, threadingService: threadingService);

            var result = await service.GetValueAsync();

            Assert.Null(result);
        }
Beispiel #2
0
        public async Task GetValueAsync_CancelledToken_ThrowsOperationCanceled()
        {
            var threadingService = IProjectThreadingServiceFactory.Create();
            var serviceProvider  = IAsyncServiceProviderFactory.ImplementGetServiceAsync(type => null);

            var service = CreateInstance <string, string>(serviceProvider: serviceProvider, threadingService: threadingService);

            await Assert.ThrowsAnyAsync <OperationCanceledException>(() =>
            {
                return(service.GetValueAsync(new CancellationToken(true)));
            });
        }
Beispiel #3
0
        public async Task GetValueAsync_CachesResult()
        {
            var threadingService = IProjectThreadingServiceFactory.Create();
            var serviceProvider  = IAsyncServiceProviderFactory.ImplementGetServiceAsync(type =>
            {
                return(new object());
            });

            var service = CreateInstance <string, object>(serviceProvider: serviceProvider, threadingService: threadingService);

            var result1 = await service.GetValueAsync();

            var result2 = await service.GetValueAsync();

            Assert.Same(result1, result2);
        }
Beispiel #4
0
        public async Task GetValueAsync_ReturnsGetService()
        {
            object input = new object();

            var threadingService = IProjectThreadingServiceFactory.Create();
            var serviceProvider  = IAsyncServiceProviderFactory.ImplementGetServiceAsync(type =>
            {
                if (type == typeof(string))
                {
                    return(input);
                }

                return(null);
            });

            var service = CreateInstance <string, object>(serviceProvider: serviceProvider, threadingService: threadingService);

            var result = await service.GetValueAsync();

            Assert.Same(input, result);
        }