public async Task GetAll_Test()
        {
            // arrange
            var fakeUowProvider = A.Fake <IUnitOfWorkProvider>();
            var fakeUow         = A.Fake <IUnitOfWork>();

            A.CallTo(() => fakeUowProvider.Get()).Returns(fakeUow);
            var fakeRepoProvider = A.Fake <IMediaItemCopyRepositoryProvider>();
            var fakeRepo         = A.Fake <IMediaItemCopyRepository>();

            A.CallTo(() => fakeRepoProvider.Get(fakeUow)).Returns(fakeRepo);
            MediaItemCopyService service = new MediaItemCopyService(fakeUowProvider, fakeRepoProvider);
            List <MediaItemCopy> copies  = new List <MediaItemCopy>
            {
                new MediaItemCopy {
                    Id = 1
                }
            };

            A.CallTo(() => fakeRepo.ReadAll()).Returns(copies);

            // act
            var result = await service.GetAll();

            // assert
            Assert.IsTrue(result.ToList().Count == 1);
            Assert.IsTrue(result.ToList()[0].Id == 1);
        }
        public async Task DeleteById_Test()
        {
            // arrange
            var fakeUowProvider = A.Fake <IUnitOfWorkProvider>();
            var fakeUow         = A.Fake <IUnitOfWork>();

            A.CallTo(() => fakeUowProvider.Get()).Returns(fakeUow);
            var fakeRepoProvider = A.Fake <IMediaItemCopyRepositoryProvider>();
            var fakeRepo         = A.Fake <IMediaItemCopyRepository>();

            A.CallTo(() => fakeRepoProvider.Get(fakeUow)).Returns(fakeRepo);
            MediaItemCopyService service = new MediaItemCopyService(fakeUowProvider, fakeRepoProvider);

            // act
            await service.DeleteById(1);

            // assert
            A.CallTo(() => fakeRepo.DeleteById(1)).MustHaveHappened();
            A.CallTo(() => fakeUow.Dispose()).MustHaveHappened();
        }