Beispiel #1
0
        public async Task StoreVideoAsync_GivenMockedVideo_MockedVideoIdentical()
        {
            //arrange
            var service    = VideoStoreServiceFactory();
            var video      = MockVideoFactory(1024);
            var videoProps = new Model.VideoProperties();

            using var cancel = new CancellationTokenSource();

            //act
            videoProps = await service.StoreVideoAsync(video, videoProps, 1024, cancel.Token);

            var storedVideo = service.GetVideo(videoProps);

            //assert
            var storedVideoInMem = new MemoryStream();
            await storedVideo.CopyToAsync(storedVideoInMem);

            storedVideoInMem.ToArray().Should().BeEquivalentTo(video.ToArray());

            //clean
            await storedVideo.DisposeAsync();

            await service.DeleteVideoAsync(videoProps);
        }
Beispiel #2
0
        public async Task StoreVideoAsync_ExpectedLengthIsWrong_MockedVideoNotStored()
        {
            //arrange
            var service    = VideoStoreServiceFactory();
            var video      = MockVideoFactory(1024);
            var videoProps = new Model.VideoProperties();

            using var cancel = new CancellationTokenSource();

            //act
            await service.StoreVideoAsync(video, videoProps, 1025, cancel.Token);

            //assert
            File.Exists(Path.Combine(service.VideoRoot, videoProps.VirtualFilePath)).Should().BeFalse();
        }
Beispiel #3
0
        public async Task StoreVideoAsync_GivenMockedVideo_MockedVideoIsStored()
        {
            //arrange
            var service    = VideoStoreServiceFactory();
            var video      = MockVideoFactory(1024);
            var videoProps = new Model.VideoProperties();

            using var cancel = new CancellationTokenSource();

            //act
            await service.StoreVideoAsync(video, videoProps, 1024, cancel.Token);

            //assert
            File.Exists(Path.Combine(service.VideoRoot, videoProps.VirtualFilePath)).Should().BeTrue();

            //clean
            await service.DeleteVideoAsync(videoProps);
        }
Beispiel #4
0
        public async Task DeleteVideoAsync_GivenExistingVideo_VideoShouldBeDeleted()
        {
            //arrange
            var service    = VideoStoreServiceFactory();
            var video      = MockVideoFactory(1024);
            var videoProps = new Model.VideoProperties()
            {
                VirtualFilePath = "DeleteVideoAsync_GivenExistingVideo_VideoShouldBeDeleted"
            };
            var videoFile = Path.Combine(service.VideoRoot, videoProps.VirtualFilePath);

            using var cancel = new CancellationTokenSource();
            using (FileStream file = new FileStream(videoFile, FileMode.CreateNew))
                await video.CopyToAsync(file);

            //act
            var result = await service.DeleteVideoAsync(videoProps);

            //assert
            result.Should().BeTrue();
            File.Exists(videoFile).Should().BeFalse();
        }
Beispiel #5
0
        public async Task StoreVideoAsync_GivenEnvVideoRootAndMockedVideo_MockedVideoIsStored()
        {
            //arrange
            var webhost = new Mock <IWebHostEnvironment>();
            var config  = new Mock <IConfiguration>();

            config.Setup(_ => _["VideoStoreRoot"]).Returns <IConfiguration, string>(null);
            webhost.Setup(_ => _.ContentRootPath).Returns(Directory.GetCurrentDirectory());
            var service    = new VideoStoreService(webhost.Object, config.Object);
            var video      = MockVideoFactory(1024);
            var videoProps = new Model.VideoProperties();

            using var cancel = new CancellationTokenSource();

            //act
            await service.StoreVideoAsync(video, videoProps, 1024, cancel.Token);

            //assert
            File.Exists(Path.Combine(service.VideoRoot, videoProps.VirtualFilePath)).Should().BeTrue();

            //clean
            await service.DeleteVideoAsync(videoProps);
        }