Ejemplo n.º 1
0
        public async Task Should_restore_app_image()
        {
            var imageStream = new MemoryStream();

            var context = CreateRestoreContext();

            A.CallTo(() => context.Reader.ReadBlobAsync(A <string> .Ignored, A <Func <Stream, Task> > .Ignored))
            .Invokes((string _, Func <Stream, Task> handler) => handler(imageStream));

            await sut.RestoreEventAsync(Envelope.Create(new AppImageUploaded()), context);

            A.CallTo(() => appImageStore.UploadAsync(appId, imageStream, default))
            .MustHaveHappened();
        }
Ejemplo n.º 2
0
        public async Task Should_restore_app_image()
        {
            var imageStream = new MemoryStream();

            var context = CreateRestoreContext();

            A.CallTo(() => context.Reader.OpenBlobAsync(A <string> ._, ct))
            .Returns(imageStream);

            await sut.RestoreEventAsync(Envelope.Create(new AppImageUploaded()), context, ct);

            A.CallTo(() => appImageStore.UploadAsync(appId, imageStream, ct))
            .MustHaveHappened();
        }
Ejemplo n.º 3
0
 private async Task ReadAssetAsync(Guid appId, IBackupReader reader)
 {
     await reader.ReadBlobAsync(AvatarFile, async stream =>
     {
         try
         {
             await appImageStore.UploadAsync(appId, stream);
         }
         catch (AssetAlreadyExistsException)
         {
         }
     });
 }
Ejemplo n.º 4
0
        private async Task UploadAsync(UploadAppImage uploadImage)
        {
            var file = uploadImage.File;

            var image = await assetThumbnailGenerator.GetImageInfoAsync(file.OpenRead());

            if (image == null)
            {
                throw new ValidationException("File is not an image.");
            }

            await appImageStore.UploadAsync(uploadImage.AppId, file.OpenRead());
        }
Ejemplo n.º 5
0
 private async Task ReadAssetAsync(DomainId appId, IBackupReader reader,
                                   CancellationToken ct)
 {
     try
     {
         await using (var stream = await reader.OpenBlobAsync(AvatarFile, ct))
         {
             await appImageStore.UploadAsync(appId, stream, ct);
         }
     }
     catch (AssetAlreadyExistsException)
     {
     }
     catch (FileNotFoundException)
     {
     }
 }
Ejemplo n.º 6
0
        public async Task Should_upload_image_to_store()
        {
            var file = new NoopAssetFile();

            var command = CreateCommand(new UploadAppImage {
                AppId = appId, File = file
            });
            var context = CreateContextForCommand(command);

            A.CallTo(() => assetThumbnailGenerator.GetImageInfoAsync(A <Stream> ._))
            .Returns(new ImageInfo(100, 100, false));

            await sut.HandleAsync(context);

            A.CallTo(() => appImageStore.UploadAsync(appId.Id, A <Stream> ._, A <CancellationToken> ._))
            .MustHaveHappened();
        }
Ejemplo n.º 7
0
        private async Task UploadAsync(UploadAppImage uploadImage)
        {
            var file = uploadImage.File;

            using (var uploadStream = file.OpenRead())
            {
                var image = await assetThumbnailGenerator.GetImageInfoAsync(uploadStream);

                if (image == null)
                {
                    throw new ValidationException(T.Get("apps.notImage"));
                }
            }

            using (var uploadStream = file.OpenRead())
            {
                await appImageStore.UploadAsync(uploadImage.AppId.Id, uploadStream);
            }
        }
Ejemplo n.º 8
0
        public async Task Should_upload_image_to_store()
        {
            var stream = new MemoryStream();

            var file = new AssetFile("name.jpg", "image/jpg", 1024, () => stream);

            var command = CreateCommand(new UploadAppImage {
                AppId = appId, File = file
            });
            var context = CreateContextForCommand(command);

            A.CallTo(() => assetThumbnailGenerator.GetImageInfoAsync(stream))
            .Returns(new ImageInfo(100, 100));

            await sut.HandleAsync(context);

            A.CallTo(() => appImageStore.UploadAsync(appId, stream, A <CancellationToken> .Ignored))
            .MustHaveHappened();
        }