diff --git a/tests/EFCore.QueryRepository.Tests/DemoDbContext.cs b/tests/EFCore.QueryRepository.Tests/DemoDbContext.cs index 9ee8391..6cb329f 100644 --- a/tests/EFCore.QueryRepository.Tests/DemoDbContext.cs +++ b/tests/EFCore.QueryRepository.Tests/DemoDbContext.cs @@ -30,5 +30,16 @@ public class Employee { public int Id { get; set; } + public int DepartmentId { get; set; } + + public string Name { get; set; } + + public Department Department { get; set; } +} + +public class Department +{ + public int Id { get; set; } + public string Name { get; set; } } diff --git a/tests/EFCore.QueryRepository.Tests/QueryRepositoryTests.cs b/tests/EFCore.QueryRepository.Tests/QueryRepositoryTests.cs index d78d407..72fd5ce 100644 --- a/tests/EFCore.QueryRepository.Tests/QueryRepositoryTests.cs +++ b/tests/EFCore.QueryRepository.Tests/QueryRepositoryTests.cs @@ -7,16 +7,36 @@ namespace EFCore.QueryRepository.Tests; public class QueryRepositoryTests { + private readonly List fakeEmployees = new() + { + new() + { + Id = 1, + DepartmentId = 1, + Name = "Mark", + Department = new Department + { + Id = 1, + Name = "IT" + } + }, + new() + { + Id = 2, + DepartmentId = 1, + Name = "Merry", + Department = new Department + { + Id = 2, + Name = "HR" + } + } + }; + [Fact] public async Task GetListAsyncTest() { // Arrange - var fakeEmployees = new List() - { - new() {Id = 1,Name = "Mark"}, - new() {Id = 1, Name = "Merry"} - }; - Mock mockDemoContext = new(); mockDemoContext.Setup(context => context.Set()).ReturnsDbSet(fakeEmployees); @@ -34,12 +54,6 @@ public async Task GetListAsyncTest() public async Task GetListAsync_WithCondition_Test() { // Arrange - var fakeEmployees = new List() - { - new() {Id = 1,Name = "Mark"}, - new() {Id = 2, Name = "Merry"} - }; - int expectedCount = fakeEmployees.Where(e => e.Id == 1).Count(); string expectedName = "Mark"; @@ -56,4 +70,21 @@ public async Task GetListAsync_WithCondition_Test() Assert.True(employees.Count == expectedCount); Assert.Equal(expectedName, employees.First().Name); } + + [Fact] + public async Task GetListAsync_WithInclude_Test() + { + // Arrange + Mock mockDemoContext = new(); + mockDemoContext.Setup(context => context.Set()).ReturnsDbSet(fakeEmployees); + + // Act + QueryRepository queryRepository = new(mockDemoContext.Object); + List employees = await queryRepository.GetListAsync(q => q.Include(e => e.Department)); + + // Assert + Assert.NotNull(employees); + Assert.NotEmpty(employees); + Assert.True(employees.Count == fakeEmployees.Count); + } } \ No newline at end of file