Beispiel #1
0
        private async Task <ISavedImage> SaveImage(IImage image, ImageSourceId sourceId)
        {
            ImageId id = await image.GetId();

            _logger.Information("Saving image {ImageId} from source {SourceId}", id.Value, sourceId.Value);
            ISavedImage savedImage = await _imageRepository.SaveImage(new SourceQualifiedImageId(sourceId, id), image.GetImageStream);

            _logger.Information("Saved image {ImageId} from source {SourceId}", id.Value, sourceId.Value);
            return(savedImage);
        }
Beispiel #2
0
        public Task <Option <ISavedImage> > Dequeue()
        {
            if (!_queue.Any())
            {
                return(Task.FromResult(Option.None <ISavedImage>()));
            }
            ISavedImage image = _queue.Dequeue();

            _logger.Information("Dequeuing image {ImageId} from source {SourceId}", image.Id.ImageId.Value, image.Id.SourceId.Value);
            return(Task.FromResult(image.Some()));
        }
        public async Task SaveImage_PersistsImage_ReturnsImageThatCanBeFetchedFromPersistence()
        {
            var         getImageStream = A.Fake <Func <Task <Stream> > >();
            ISavedImage savedImage     = await _imageRepository.SaveImage(_imageId, getImageStream);

            A.CallTo(() => _imagePersistence.SaveImage(_imageId.SourceId.Value, _imageId.ImageId.Value, getImageStream, A <ILogger> ._))
            .MustHaveHappened(Repeated.Exactly.Once);

            savedImage.Id.Should().Be(_imageId);
            (await savedImage.GetStream()).Should().Be(_imageStreamFromPersistence);
        }
Beispiel #4
0
        public async Task Dequeue_HasItemsInQueue_PullsFirstItemFromQueue()
        {
            ISavedImage firstImageInQueue = CreateSavedImage("1");
            await _sut.Enqueue(new[] { firstImageInQueue, CreateSavedImage("2"), CreateSavedImage("3") });

            var dequeued = await _sut.Dequeue();

            ImageIds().Should().Equal("2", "3");
            dequeued.HasValue.Should().BeTrue();
            dequeued.ValueOrFailure().Should().Be(firstImageInQueue);
        }