Пример #1
0
        public async Task UpdateAudioTranscript_PublishesAudioTranscriptUpdatedEventToEventGrid()
        {
            // arrange
            var fakeBlobRepository = new FakeBlobRepository();

            fakeBlobRepository.AddFakeBlob(AudioService.AudioBlobContainerName, "fakeuserid/fakeid");
            var mockAudioTranscriptionService = new Mock <IAudioTranscriptionService>();

            mockAudioTranscriptionService
            .Setup(m => m.GetAudioTranscriptFromCognitiveServicesAsync(It.IsAny <Stream>()))
            .ReturnsAsync("transcript");
            var mockEventGridPublisherService = new Mock <IEventGridPublisherService>();
            var service = new AudioService(fakeBlobRepository, mockAudioTranscriptionService.Object, mockEventGridPublisherService.Object);

            // act
            await service.UpdateAudioTranscriptAsync("fakeid", "fakeuserid");

            // assert
            mockEventGridPublisherService.Verify(m =>
                                                 m.PostEventGridEventAsync(EventTypes.Audio.AudioTranscriptUpdated,
                                                                           "fakeuserid/fakeid",
                                                                           It.Is <AudioTranscriptUpdatedEventData>(d => d.TranscriptPreview == "transcript")),
                                                 Times.Once);
        }
        public async Task CompleteAddImageNote_ReturnsImageAlreadyCreated()
        {
            // arrange
            var blob = new CloudBlockBlob(new Uri("https://fakeblobrepository/fullimages/fakeuserid/fakeid"));

            blob.Metadata.Add(ImagesService.CategoryIdMetadataName, "fakecategory");
            blob.Metadata.Add(ImagesService.UserIdMetadataName, "fakeuserid");
            var fakeBlobRepository = new FakeBlobRepository();

            fakeBlobRepository.AddFakeBlob(ImagesService.FullImagesBlobContainerName, "fakeuserid/fakeid", blob);
            var mockImagePreviewService   = new Mock <IImagePreviewService>();
            var mockImageValidatorService = new Mock <IImageValidatorService>();

            mockImageValidatorService
            .Setup(m => m.ValidateImage(It.IsAny <Stream>()))
            .Returns(new ValueTuple <bool, string>(true, ""));
            var service = new ImagesService(fakeBlobRepository, mockImageValidatorService.Object, mockImagePreviewService.Object, new Mock <IImageCaptionService>().Object, new Mock <IEventGridPublisherService>().Object);

            // act
            var output = await service.CompleteAddImageNoteAsync("fakeid", "fakeuserid", "fakecategory");

            // assert
            Assert.Equal(CompleteAddImageNoteResult.ImageAlreadyCreated, output.result);
        }
        public async Task CompleteAddImageNote_CreatesAndUploadsPreviewBlob()
        {
            // arrange
            var fakeBlobRepository = new FakeBlobRepository();

            fakeBlobRepository.AddFakeBlob(ImagesService.FullImagesBlobContainerName, "fakeuserid/fakeid");
            var mockImagePreviewService   = new Mock <IImagePreviewService>();
            var mockImageValidatorService = new Mock <IImageValidatorService>();

            mockImageValidatorService
            .Setup(m => m.ValidateImage(It.IsAny <Stream>()))
            .Returns(new ValueTuple <bool, string>(true, ""));
            var service = new ImagesService(fakeBlobRepository, mockImageValidatorService.Object, mockImagePreviewService.Object, new Mock <IImageCaptionService>().Object, new Mock <IEventGridPublisherService>().Object);

            // act
            await service.CompleteAddImageNoteAsync("fakeid", "fakeuserid", "fakecategory");

            // assert
            mockImagePreviewService.Verify(m =>
                                           m.CreatePreviewImage(It.IsAny <Stream>()),
                                           Times.Once);
            Assert.Contains(fakeBlobRepository.Blobs, f => f.ContainerName == ImagesService.PreviewImagesBlobContainerName);
            Assert.Equal("image/jpeg", fakeBlobRepository.Blobs.Single(b => b.ContainerName == ImagesService.PreviewImagesBlobContainerName).ContentType);
        }
        public async Task CompleteAddImageNote_PublishesImageCreatedEventToEventGrid()
        {
            // arrange
            var fakeBlobRepository = new FakeBlobRepository();

            fakeBlobRepository.AddFakeBlob(ImagesService.FullImagesBlobContainerName, "fakeuserid/fakeid");
            var mockImageValidatorService = new Mock <IImageValidatorService>();

            mockImageValidatorService
            .Setup(m => m.ValidateImage(It.IsAny <Stream>()))
            .Returns(new ValueTuple <bool, string>(true, ""));
            var mockEventGridPublisherService = new Mock <IEventGridPublisherService>();
            var service = new ImagesService(fakeBlobRepository, mockImageValidatorService.Object, new Mock <IImagePreviewService>().Object, new Mock <IImageCaptionService>().Object, mockEventGridPublisherService.Object);

            // act
            await service.CompleteAddImageNoteAsync("fakeid", "fakeuserid", "fakecategory");

            // assert
            mockEventGridPublisherService.Verify(m =>
                                                 m.PostEventGridEventAsync(EventTypes.Images.ImageCreated,
                                                                           "fakeuserid/fakeid",
                                                                           It.Is <ImageCreatedEventData>(d => d.Category == "fakecategory")),
                                                 Times.Once);
        }