public static ITorrentRepository GetTorrentRepository() { var repositoryMock = new Mock <ITorrentRepository>(); var torrents = new DbQueryMock <Torrent>(DataInitializer.GeTorrents()).Object; repositoryMock.Setup(x => x.GetAll()).Returns(torrents); repositoryMock.Setup(x => x.GetAll(It.IsAny <Expression <Func <Torrent, bool> > >())) .Returns <Expression <Func <Torrent, bool> > >(torrents.Where); repositoryMock.Setup(x => x.GetAsync(It.IsAny <int>())) .ReturnsAsync((int id) => torrents.SingleOrDefault(x => x.Id == id)); repositoryMock.Setup(x => x.GetAsync(It.IsAny <Expression <Func <Torrent, bool> > >())) .ReturnsAsync((Expression <Func <Torrent, bool> > expression) => torrents.SingleOrDefault(expression)); repositoryMock.Setup(x => x.CountAsync()).ReturnsAsync(torrents.Count); repositoryMock.Setup(x => x.CountAsync(It.IsAny <Expression <Func <Torrent, bool> > >())) .ReturnsAsync((Expression <Func <Torrent, bool> > expression) => torrents.Count(expression)); repositoryMock.Setup(x => x.ExistAsync(It.IsAny <int>())) .ReturnsAsync((int id) => torrents.Any(x => x.Id == id)); return(repositoryMock.Object); }
public void DbQueryMock_Empty_AsEnumerable_ShouldReturnEmptyEnumerable() { var dbQueryMock = new DbQueryMock <QueryModel>(new List <QueryModel>()); var models = dbQueryMock.Object.AsEnumerable(); Assert.That(models, Is.Not.Null); Assert.That(models, Is.Empty); }
public static ILikeRepository GetLikeRepository() { var repositoryMock = new Mock <ILikeRepository>(); var likes = new DbQueryMock <Like>(DataInitializer.GetLikes()).Object; repositoryMock.Setup(x => x.GetAsync(It.IsAny <Expression <Func <Like, bool> > >())) .ReturnsAsync((Expression <Func <Like, bool> > expression) => likes.SingleOrDefault(expression)); return(repositoryMock.Object); }
public async Task DbQueryMock_AsyncProvider() { var model = new QueryModel { AuthorName = "Author 1", ArticleCount = 5 }; var dbQueryMock = new DbQueryMock <QueryModel>(new [] { model }); var dbQuery = dbQueryMock.Object; Assert.That(await dbQuery.CountAsync(), Is.EqualTo(1)); Assert.That(await dbQuery.AnyAsync(x => x.AuthorName == "Author 1" && x.ArticleCount == 5), Is.True); }
public static ICategoryRepository GetCategoryRepository() { var repositoryMock = new Mock <ICategoryRepository>(); var categories = new DbQueryMock <Category>(DataInitializer.GetCategories()).Object; repositoryMock.Setup(x => x.GetAll()).Returns(categories); repositoryMock.Setup(x => x.GetAsync(It.IsAny <int>())) .ReturnsAsync((int id) => categories.SingleOrDefault(x => x.Id == id)); return(repositoryMock.Object); }
public static ICommentRepository GetCommentRepository() { var repositoryMock = new Mock <ICommentRepository>(); var comments = new DbQueryMock <Comment>(DataInitializer.GetComments()).Object; repositoryMock.Setup(x => x.GetAll(It.IsAny <Expression <Func <Comment, bool> > >())) .Returns <Expression <Func <Comment, bool> > >(comments.Where); repositoryMock.Setup(x => x.GetAsync(It.IsAny <Expression <Func <Comment, bool> > >())) .ReturnsAsync((Expression <Func <Comment, bool> > expression) => comments.SingleOrDefault(expression)); return(repositoryMock.Object); }
public static ISubcategoryRepository GetSubcategoryRepository() { var repositoryMock = new Mock <ISubcategoryRepository>(); var subcategories = new DbQueryMock <Subcategory>(DataInitializer.GetSubcategories()).Object; repositoryMock.Setup(x => x.GetAll(It.IsAny <Expression <Func <Subcategory, bool> > >())) .Returns <Expression <Func <Subcategory, bool> > >(subcategories.Where); repositoryMock.Setup(x => x.GetAsync(It.IsAny <int>())) .ReturnsAsync((int id) => subcategories.SingleOrDefault(x => x.Id == id)); return(repositoryMock.Object); }
public void DbQueryMock_AsEnumerable_ShouldReturnEnumerableCollection() { var dbQueryMock = new DbQueryMock <QueryModel>(new[] { new QueryModel { AuthorName = "Author 1", ArticleCount = 5 }, new QueryModel { AuthorName = "Author 2", ArticleCount = 6 } }); var models = dbQueryMock.Object.AsEnumerable(); Assert.That(models, Is.Not.Null); Assert.That(models.Count(), Is.EqualTo(2)); }
public async Task DbQueryMock_AsyncProvider_ShouldReturnRequestedModel() { var dbQueryMock = new DbQueryMock <QueryModel>(new[] { new QueryModel { AuthorName = "Author 1", ArticleCount = 5 }, new QueryModel { AuthorName = "Author 2", ArticleCount = 6 } }); var model = await dbQueryMock.Object.Where(x => x.AuthorName == "Author 2").FirstOrDefaultAsync(); Assert.That(model, Is.Not.Null); Assert.That(model.ArticleCount, Is.EqualTo(6)); }
public void ReturnAllBlogObjects_Mock_DbContext() { var builder = new DbContextOptionsBuilder(); var options = builder.Options; var blogContextMock = new Mock <BlogContext>(options); var blogs = new List <DataAccess.Blog> { new Blog(), new Blog() }; var dbSetMock = new DbQueryMock <DataAccess.Blog>(blogs); blogContextMock .Setup(b => b.Blogs) .Returns(dbSetMock.Object); var blogRepository = new BlogRepository(blogContextMock.Object); var blogEntries = blogRepository.GetAllBlogEntries(); Assert.AreEqual(2, blogEntries.Count()); }
public DbQueryMock <TEntity> CreateDbQueryMock <TEntity>(Expression <Func <TDbContext, DbQuery <TEntity> > > dbQuerySelector, IEnumerable <TEntity> entities = null) where TEntity : class { if (dbQuerySelector == null) { throw new ArgumentNullException(nameof(dbQuerySelector)); } var memberInfo = ((MemberExpression)dbQuerySelector.Body).Member; if (_dbQueryCache.ContainsKey(memberInfo)) { throw new ArgumentException($"DbQueryMock for {memberInfo.Name} already created", nameof(dbQuerySelector)); } var mock = new DbQueryMock <TEntity>(entities); Object.Query <TEntity>().Returns(mock.Object); dbQuerySelector.Compile()(Object).Returns(mock.Object); _dbQueryCache.Add(memberInfo, mock); return(mock); }