Exemplo n.º 1
0
        public async Task GetNextChangesBatch_TasksWithDifferentWorkPathAndOptions_UseDifferentValues()
        {
            // Arrange
            var blobContents = new List <BlobEntry>()
            {
                new BlobInfo()
                {
                    Name = "Blob1.png",
                    Url  = "testPath1/Blob1.png",
                },
                new BlobInfo()
                {
                    Name = "Blob2.png",
                    Url  = "testPath2/Blob2.png",
                },
            };
            var changesProvider = GetBlobImagesChangesProvider(blobContents);
            var thumbnailOption = new ThumbnailOption()
            {
                FileSuffix = OptionSuffix
            };
            var task1 = new ThumbnailTask()
            {
                Id               = Guid.NewGuid().ToString(),
                LastRun          = null,
                WorkPath         = "testPath1",
                ThumbnailOptions = new List <ThumbnailOption>()
                {
                    thumbnailOption
                },
            };
            var task2 = new ThumbnailTask()
            {
                Id               = Guid.NewGuid().ToString(),
                LastRun          = null,
                WorkPath         = "testPath2",
                ThumbnailOptions = new List <ThumbnailOption>()
                {
                    thumbnailOption
                },
            };
            var cancellationToken = new CancellationTokenWrapper(new CancellationToken());

            // Act
            var changes1 = await changesProvider.GetNextChangesBatch(task1, null, 0, 10, cancellationToken);

            var changes2 = await changesProvider.GetNextChangesBatch(task2, null, 0, 10, cancellationToken);

            //Assert
            StorageProviderMock.Verify(x => x.SearchAsync(It.IsAny <string>(), It.IsAny <string>()), Times.Exactly(2));

            Assert.Collection(changes1, x => Assert.Equal("Blob1.png", x.Name));
            Assert.Collection(changes2, x => Assert.Equal("Blob2.png", x.Name));
        }
Exemplo n.º 2
0
        public async Task GetNextChangesBatch_TasksWithOneWorkPathAndOptions_CacheIsWorking()
        {
            // Arrange
            var blobContents = new List <BlobEntry>()
            {
                new BlobInfo()
                {
                    Name = "Blob1.png",
                    Url  = "testPath/Blob1.png",
                },
            };
            var changesProvider = GetBlobImagesChangesProvider(blobContents);
            var thumbnailOption = new ThumbnailOption()
            {
                FileSuffix = OptionSuffix
            };
            var workPath = "testPath";
            var task1    = new ThumbnailTask()
            {
                Id               = Guid.NewGuid().ToString(),
                LastRun          = null,
                WorkPath         = workPath,
                ThumbnailOptions = new List <ThumbnailOption>()
                {
                    thumbnailOption
                },
            };
            var task2 = new ThumbnailTask()
            {
                Id               = Guid.NewGuid().ToString(),
                LastRun          = null,
                WorkPath         = workPath,
                ThumbnailOptions = new List <ThumbnailOption>()
                {
                    thumbnailOption
                },
            };
            var cancellationToken = new CancellationTokenWrapper(new CancellationToken());

            // Act
            var changes1 = await changesProvider.GetNextChangesBatch(task1, null, 0, 10, cancellationToken);

            var changes2 = await changesProvider.GetNextChangesBatch(task2, null, 0, 10, cancellationToken);

            //Assert
            StorageProviderMock.Verify(x => x.SearchAsync(It.IsAny <string>(), It.IsAny <string>()), Times.Once);

            Assert.Single(changes1);
            Assert.Single(changes2);
            for (var i = 0; i < changes1.Length; i++)
            {
                Assert.Same(changes1[i], changes2[i]);
            }
        }
Exemplo n.º 3
0
        public async Task GetNextChangesBatch_TasksWithOneWorkPathAndOptions_CacheIsWorkingWithGetTotalChangesCount()
        {
            // Arrange
            var blobContents = new List <BlobEntry>()
            {
                new BlobInfo()
                {
                    Name = "Blob1.png",
                    Url  = "testPath/Blob1.png",
                },
            };
            var changesProvider = GetBlobImagesChangesProvider(blobContents);
            var thumbnailOption = new ThumbnailOption()
            {
                FileSuffix = OptionSuffix
            };
            var workPath = "testPath";
            var task     = new ThumbnailTask()
            {
                Id               = Guid.NewGuid().ToString(),
                LastRun          = null,
                WorkPath         = workPath,
                ThumbnailOptions = new List <ThumbnailOption>()
                {
                    thumbnailOption
                },
            };
            var cancellationToken = new CancellationTokenWrapper(new CancellationToken());

            // Act
            var changes = await changesProvider.GetNextChangesBatch(task, null, 0, 10, cancellationToken);

            var count = await changesProvider.GetTotalChangesCount(task, null, cancellationToken);

            //Assert
            StorageProviderMock.Verify(x => x.SearchAsync(It.IsAny <string>(), It.IsAny <string>()), Times.Once);

            Assert.Collection(changes, x => Assert.Equal("Blob1.png", x.Name));
            Assert.Equal(1, count);
        }
Exemplo n.º 4
0
        public async Task ProcessTasksAsync_BlobChangesProviderCache_ExpiredAfterExecution()
        {
            // Arrange
            var blobContents = new List <BlobEntry>()
            {
                new BlobInfo()
                {
                    Name = "Blob1.png",
                    Url  = "testPath/Blob1.png",
                },
            };
            var imageChangesProvider         = GetBlobImagesChangesProvider(blobContents);
            var thumbnailGenerationProcessor = new ThumbnailGenerationProcessor(_generator.Object, _settingsManager.Object, imageChangesProvider);

            var thumbnailOption = new ThumbnailOption()
            {
                FileSuffix = OptionSuffix
            };
            var workPath = "testPath";
            var task1    = new ThumbnailTask()
            {
                Id               = Guid.NewGuid().ToString(),
                LastRun          = null,
                WorkPath         = workPath,
                ThumbnailOptions = new List <ThumbnailOption>()
                {
                    thumbnailOption
                },
            };
            var cancellationToken = new CancellationTokenWrapper(new CancellationToken());

            // Act

            await thumbnailGenerationProcessor.ProcessTasksAsync(new[] { task1 }, false, x => { }, cancellationToken);

            await thumbnailGenerationProcessor.ProcessTasksAsync(new[] { task1 }, false, x => { }, cancellationToken);

            //Assert
            StorageProviderMock.Verify(x => x.SearchAsync(It.IsAny <string>(), It.IsAny <string>()), Times.Exactly(2));
        }