Exemplo n.º 1
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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));
        }
Exemplo n.º 10
0
        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());
        }
Exemplo n.º 11
0
        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);
        }