public MemberTests() { mockUnitOfWork = new Mock <BLL.IUnitOfWork>(); memberBusiness = new BLL.Member(mockUnitOfWork.Object); mockMemberRepo = new Mock <Repository.IRepository <EF.Member> >(); // Create mockable IQueryable async // https://stackoverflow.com/questions/40476233/how-to-mock-an-async-repository-with-entity-framework-core/40491640 var mockIQueryableMember = new TestRepo().Members.AsQueryable().BuildMock(); mockMemberRepo.Setup(x => x.Entities).Returns(mockIQueryableMember.Object); mockUnitOfWork.Setup(x => x.MemberRepository).Returns(mockMemberRepo.Object); }
public MemberControllerTests() { mockUnitOfWork = new Mock <BLL.IUnitOfWork>(); mockMemberRepo = new Mock <Repository.IRepository <EF.Member> >(); var mockIQueryableMember = new TestRepo().Members.AsQueryable().BuildMock(); mockMemberRepo.Setup(x => x.Entities).Returns(mockIQueryableMember.Object); mockEndUserRepo = new Mock <Repository.IRepository <EF.EndUser> >(); var mockIQueryableEndUser = new TestRepo().EndUsers.AsQueryable().BuildMock(); mockEndUserRepo.Setup(x => x.Entities).Returns(mockIQueryableEndUser.Object); mockGroupRepo = new Mock <Repository.IRepository <EF.Group> >(); var mockIQueryableGroup = new TestRepo().Groups.AsQueryable().BuildMock(); mockGroupRepo.Setup(x => x.Entities).Returns(mockIQueryableGroup.Object); mockGroupMemberRepo = new Mock <Repository.IRepository <EF.GroupMember> >(); var mockIQueryableGroupMember = new TestRepo().GroupMembers.AsQueryable().BuildMock(); mockGroupMemberRepo.Setup(x => x.Entities).Returns(mockIQueryableGroupMember.Object); mockAttendanceRepo = new Mock <Repository.IRepository <EF.Attendance> >(); var mockIQueryableAttendance = new TestRepo().Attendances.AsQueryable().BuildMock(); mockAttendanceRepo.Setup(x => x.Entities).Returns(mockIQueryableAttendance.Object); mockEventRepo = new Mock <Repository.IRepository <EF.Event> >(); var mockIQueryableEvent = new TestRepo().Events.AsQueryable().BuildMock(); mockEventRepo.Setup(x => x.Entities).Returns(mockIQueryableEvent.Object); mockEventCategoryRepo = new Mock <Repository.IRepository <EF.EventCategory> >(); var mockIQueryableEventCategory = new TestRepo().EventCategories.AsQueryable().BuildMock(); mockEventCategoryRepo.Setup(x => x.Entities).Returns(mockIQueryableEventCategory.Object); mockUnitOfWork.Setup(x => x.MemberRepository).Returns(mockMemberRepo.Object); mockUnitOfWork.Setup(x => x.EndUserRepository).Returns(mockEndUserRepo.Object); mockUnitOfWork.Setup(x => x.GroupRepository).Returns(mockGroupRepo.Object); mockUnitOfWork.Setup(x => x.GroupMemberRepository).Returns(mockGroupMemberRepo.Object); mockUnitOfWork.Setup(x => x.AttendanceRepository).Returns(mockAttendanceRepo.Object); mockUnitOfWork.Setup(x => x.EventRepository).Returns(mockEventRepo.Object); mockUnitOfWork.Setup(x => x.EventCategoryRepository).Returns(mockEventCategoryRepo.Object); memberBusiness = new BLL.Member(mockUnitOfWork.Object); endUserBusiness = new BLL.EndUser(mockUnitOfWork.Object); var mockOptions = new Mock <IOptions <Core.Emailer> >(); var mockLookUpBusiness = new Mock <BLL.ILookUp>(); var mockDBContext = new Mock <EF.AARSContext>(); var profile = new AutoMapperProfileConfiguration(); var mapperConfig = new MapperConfiguration(config => config.AddProfile(profile)); var mapper = new Mapper(mapperConfig); controller = new MemberController(mockOptions.Object, memberBusiness, endUserBusiness, mockLookUpBusiness.Object, null, mapper) { ControllerContext = new ControllerContext() }; controller.ControllerContext.HttpContext = new DefaultHttpContext(); controller.ControllerContext.HttpContext.Items.Add("EndUser", new EF.EndUser { MemberId = 1, Member = new EF.Member { CommunityId = 1 }, RoleId = 1 }); }