예제 #1
0
        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);
        }
예제 #2
0
        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
            });
        }