public void ShouldReturnValueOfCorrectType() { var mockUnitOfWorkFactory = new Mock <IDisposableUnitOfWorkFactory>(); var mockAsyncRepository = new Mock <IAsyncRepository <IDbModel> >(); IEnumerable <Type> repositoryQueryResult = new List <Type>(); mockAsyncRepository.Setup( repo => repo.GetAll( It.IsAny <Expression <Func <IDbModel, bool> > >(), It.IsAny <Expression <Func <IDbModel, int> > >(), It.IsAny <Expression <Func <IDbModel, Type> > >(), It.IsAny <int>(), It.IsAny <int>())) .Returns(() => Task.Run(() => repositoryQueryResult)); var genericAsyncService = new GenericAsyncService <IDbModel>(mockAsyncRepository.Object, mockUnitOfWorkFactory.Object); Expression <Func <IDbModel, bool> > filter = (IDbModel model) => model.Id > 0; Expression <Func <IDbModel, int> > orderBy = (IDbModel model) => model.Id; Expression <Func <IDbModel, Type> > select = (IDbModel model) => model.GetType(); var actualResult = genericAsyncService.GetAll(filter, orderBy, select); Assert.That(actualResult, Is.InstanceOf <IEnumerable <Type> >()); }
public void ShouldInvokeAsyncRepository_CorrectGetAllWithCorrectFilterExpression() { var mockAsyncRepository = new Mock <IAsyncRepository <IDbModel> >(); var mockUnitOfWorkFactory = new Mock <IDisposableUnitOfWorkFactory>(); var genericAsyncService = new GenericAsyncService <IDbModel>(mockAsyncRepository.Object, mockUnitOfWorkFactory.Object); Expression <Func <IDbModel, bool> > filter = (IDbModel model) => model.Id > 0; genericAsyncService.GetAll(filter); mockAsyncRepository.Verify(repo => repo.GetAll(filter), Times.Once); }
public void ShouldThrowArgumentNullExceptionWithCorrectMessage_WhenFilterParameterIsNull() { var mockAsyncRepository = new Mock <IAsyncRepository <IDbModel> >(); var mockUnitOfWorkFactory = new Mock <IDisposableUnitOfWorkFactory>(); var genericAsyncService = new GenericAsyncService <IDbModel>(mockAsyncRepository.Object, mockUnitOfWorkFactory.Object); Expression <Func <IDbModel, bool> > filter = null; Assert.That( () => genericAsyncService.GetAll(filter), Throws.InstanceOf <ArgumentNullException>().With.Message.Contains(nameof(filter))); }
public void ShouldInvokeAsyncRepository_CorrectGetAllOnce() { var mockAsyncRepository = new Mock <IAsyncRepository <IDbModel> >(); var mockUnitOfWorkFactory = new Mock <IDisposableUnitOfWorkFactory>(); var genericAsyncService = new GenericAsyncService <IDbModel>(mockAsyncRepository.Object, mockUnitOfWorkFactory.Object); Expression <Func <IDbModel, bool> > filter = (IDbModel model) => model.Id > 0; Expression <Func <IDbModel, int> > orderBy = (IDbModel model) => model.Id; genericAsyncService.GetAll(filter, orderBy); mockAsyncRepository.Verify(repo => repo.GetAll(It.IsAny <Expression <Func <IDbModel, bool> > >(), It.IsAny <Expression <Func <IDbModel, int> > >()), Times.Once); }
public void ShouldInvokeAsyncRepository_GetAllAsyncMethodOnce() { var mockAsyncRepository = new Mock <IAsyncRepository <IDbModel> >(); var mockUnitOfWork = new Mock <IDisposableUnitOfWork>(); var mockUnitOfWorkFactory = new Mock <IDisposableUnitOfWorkFactory>(); mockUnitOfWorkFactory.Setup(factory => factory.CreateUnitOfWork()).Returns(mockUnitOfWork.Object); var genericAsyncService = new GenericAsyncService <IDbModel>(mockAsyncRepository.Object, mockUnitOfWorkFactory.Object); genericAsyncService.GetAll(); mockAsyncRepository.Verify(repo => repo.GetAllAsync(), Times.Once); }
public void ShouldReturnTheResultOfTheRepositoryTask() { var mockAsyncRepository = new Mock <IAsyncRepository <IDbModel> >(); IEnumerable <IDbModel> repositoryQueryResult = new List <IDbModel>(); mockAsyncRepository.Setup(repo => repo.GetAllAsync()).Returns(() => Task.Run(() => repositoryQueryResult)); var mockUnitOfWork = new Mock <IDisposableUnitOfWork>(); var mockUnitOfWorkFactory = new Mock <IDisposableUnitOfWorkFactory>(); mockUnitOfWorkFactory.Setup(factory => factory.CreateUnitOfWork()).Returns(mockUnitOfWork.Object); var genericAsyncService = new GenericAsyncService <IDbModel>(mockAsyncRepository.Object, mockUnitOfWorkFactory.Object); var actualResult = genericAsyncService.GetAll(); Assert.That(actualResult, Is.EqualTo(repositoryQueryResult)); }
public void ShouldReturnValueOfCorrectType() { var mockAsyncRepository = new Mock <IAsyncRepository <IDbModel> >(); mockAsyncRepository.Setup(repo => repo.GetAllAsync()).Returns(() => { IEnumerable <IDbModel> result = new List <IDbModel>(); return(Task.Run(() => result)); }); var mockUnitOfWork = new Mock <IDisposableUnitOfWork>(); var mockUnitOfWorkFactory = new Mock <IDisposableUnitOfWorkFactory>(); mockUnitOfWorkFactory.Setup(factory => factory.CreateUnitOfWork()).Returns(mockUnitOfWork.Object); var genericAsyncService = new GenericAsyncService <IDbModel>(mockAsyncRepository.Object, mockUnitOfWorkFactory.Object); var actualResult = genericAsyncService.GetAll(); Assert.That(actualResult, Is.InstanceOf <IEnumerable <IDbModel> >()); }