Exemple #1
0
        public void FindByCategories_Find()
        {
            var mockContext = new Mock <NexusContext>();

            mockContext.Setup(nex => nex.Set <Category>()).Returns(TestHelpers.MockDbSet(new List <Category>()
            {
                new Category()
                {
                    Id = 1, Title = "Cat 1"
                },
                new Category()
                {
                    Id = 2, Title = "Cat 1.1", ParentId = 1
                },
                new Category()
                {
                    Id = 3, Title = "Cat 2"
                },
                new Category()
                {
                    Id = 4, Title = "Cat 2.1", ParentId = 3
                }
            }));

            mockContext.Setup(nex => nex.Set <Note>()).Returns(TestHelpers.MockDbSet(new List <Note>()
            {
                new Note()
                {
                    Id = 1, Title = "Note 1"
                },
                new Note()
                {
                    Id = 2, Title = "Note 2"
                },
                new Note()
                {
                    Id = 3, Title = "Note 3"
                },
                new Note()
                {
                    Id = 4, Title = "Note 4"
                },
            }));

            mockContext.Setup(nex => nex.Set <NoteCategory>()).Returns(TestHelpers.MockDbSet(new List <NoteCategory>
            {
                new NoteCategory {
                    NoteId = 1, CategoryId = 1
                },
                new NoteCategory {
                    NoteId = 2, CategoryId = 2
                },
                new NoteCategory {
                    NoteId = 3, CategoryId = 3
                },
                new NoteCategory {
                    NoteId = 4, CategoryId = 4
                }
            }));

            var repo  = new NoteRepository(mockContext.Object);
            var notes = repo.FindNotesByCategories(new[] { 1, 3, 2 }).ToList();

            Assert.Equal(3, notes.Count());

            Assert.Contains(notes, note => note.Id == 1);
            Assert.Contains(notes, note => note.Id == 2);
            Assert.Contains(notes, note => note.Id == 3);
            Assert.DoesNotContain(notes, note => note.Id == 4);
        }