public GetImageTests()
 {
     defaultServiceId = "default";
     mockedService    = new Mock <IStockImageService>();
     mockedService.Setup(s => s.Id).Returns(defaultServiceId);
     provider = new StockImageProvider(mockedService.Object);
 }
Esempio n. 2
0
        public void ItExists()
        {
            // Act
            var provider = new StockImageProvider();

            // Assert
            Assert.NotNull(provider);
        }
Esempio n. 3
0
        public void HasServices()
        {
            // Act
            var provider = new StockImageProvider();

            // Assert
            Assert.NotNull(provider.Services);
            Assert.IsAssignableFrom <IEnumerable <IStockImageService> >(provider.Services);
            Assert.NotEmpty(provider.Services);
        }
Esempio n. 4
0
        public void DoesNotHaveServicesDisabledByType()
        {
            // DisablingByTypeService has an attribute:
            //[DisableService(typeof(DisabledByTypeService))]

            // Act
            var provider = new StockImageProvider();

            // Assert
            Assert.Contains(provider.Services, s => s.Id == DisablingByTypeService.UniqueId);
            Assert.DoesNotContain(provider.Services, s => s.Id == DisabledByTypeService.UniqueId);
        }
Esempio n. 5
0
        public void RemovesDuplicateServices()
        {
            // Arrange
            // Using one of our fakes, doesn't matter which one, as long as the IDs are the same
            var service          = new DisabledByIdService();
            var duplicateService = new DisabledByIdService();

            // Act
            var provider = new StockImageProvider(service, duplicateService);

            // Assert
            Assert.Single(provider.Services);
            Assert.Contains(provider.Services, s => s.Id == service.Id);
        }
        public void ThrowsWhenNoValidService()
        {
            // Arrange
            var emptyProvider = new StockImageProvider(new IStockImageService[] { });

            // Act
            var exception = Record.ExceptionAsync(async() => await emptyProvider.GetRandomImage());

            // Assert
            Assert.NotNull(exception);
            Assert.NotNull(exception.Result);
            Assert.IsAssignableFrom <NoValidServiceException>(exception.Result);
            Assert.Equal("No available services support random images.", exception.Result.Message);
        }
Esempio n. 7
0
        public void AcceptsSpecificServices()
        {
            // Arrange
            // Using two of our fakes, doesn't matter which ones
            var firstService  = new DisabledByIdService();
            var secondService = new DisabledByTypeService();

            // Act
            var provider = new StockImageProvider(firstService, secondService);

            // Assert
            Assert.Equal(2, provider.Services.Count());
            Assert.Contains(provider.Services, s => s.Id == firstService.Id);
            Assert.Contains(provider.Services, s => s.Id == secondService.Id);
        }
        public async Task CallsCorrectService()
        {
            // Arrange
            const string imageId = "XXXXXXXX";

            mockedService.Setup(s => s.GetImage(It.IsAny <string>())).ReturnsAsync((StockImageModel)null);
            var otherService = new Mock <IStockImageService>();

            otherService.Setup(s => s.Id).Returns("other");
            otherService.Setup(s => s.GetImage(It.IsAny <string>())).ReturnsAsync((StockImageModel)null);
            var imageProvider = new StockImageProvider(otherService.Object, mockedService.Object);

            // Act
            await imageProvider.GetImage(imageId, defaultServiceId);

            // Assert
            mockedService.Verify(s => s.GetImage(It.IsAny <string>()), Times.Once);
            otherService.Verify(s => s.GetImage(It.IsAny <string>()), Times.Never);
        }
        public async Task OnlyCallsServicesWithRandomEnabled()
        {
            // Arrange
            mockedService.Setup(s => s.Id).Returns("1");
            mockedService.Setup(s => s.GetRandomImage()).ReturnsAsync((StockImageModel)null);
            var randomDisabledService = new Mock <IStockImageService>();

            randomDisabledService.Setup(s => s.Id).Returns("2");
            randomDisabledService.Setup(s => s.RandomImageEnabled).Returns(false);
            randomDisabledService.Setup(s => s.GetRandomImage()).ReturnsAsync((StockImageModel)null);
            var random         = Mock.Of <Random>(r => r.Next(It.IsAny <int>()) == 0);
            var randomProvider = new StockImageProvider(randomDisabledService.Object, mockedService.Object);

            // Act
            await randomProvider.GetRandomImage(random);

            // Assert
            mockedService.Verify(s => s.GetRandomImage(), Times.Once);
            randomDisabledService.Verify(s => s.GetRandomImage(), Times.Never);
        }
 public GetRandomImageTests()
 {
     mockedService = new Mock <IStockImageService>();
     mockedService.Setup(s => s.RandomImageEnabled).Returns(true);
     provider = new StockImageProvider(mockedService.Object);
 }