private static EmployeeProjectsFacade GetFacade(DbContextOptions <EmployeeProjectDbContext> options) { var dateTimeProvider = new LocalDateTimeProvider(); IUnitOfWorkProvider unitOfWorkProvider = new EntityFrameworkUnitOfWorkProvider(new AsyncLocalUnitOfWorkRegistry(), () => new EmployeeProjectDbContext(options)); Func <IFilteredQuery <EmployeeProjectDTO, EmployeeProjectFilterDTO> > queryFactory = () => new Mock <IFilteredQuery <EmployeeProjectDTO, EmployeeProjectFilterDTO> >().Object; var mapper = CreateMapper(); var entityMapper = new EntityDTOMapper <EmployeeProject, EmployeeProjectDTO>(mapper); var respository = new EntityFrameworkRepository <EmployeeProject, int>(unitOfWorkProvider, dateTimeProvider); var parentRepository = new EntityFrameworkRepository <Employee, int>(unitOfWorkProvider, dateTimeProvider); var facade = new EmployeeProjectsFacade(queryFactory, entityMapper, respository, parentRepository, dateTimeProvider, unitOfWorkProvider); return(facade); }
public void GetDetail_Mocks_ForDebug() { // Arrange var employeeProject = new EmployeeProject { Id = 1, EmployeeId = 2, ProjectId = 3, ValidityBeginDate = DateTime.Today.AddDays(-1), ValidityEndDate = DateTime.Today.AddDays(1) }; var employee = new Employee { Id = 2, EmployeeProjects = new List <EmployeeProject> { employeeProject } }; Func <IFilteredQuery <EmployeeProjectDTO, EmployeeProjectFilterDTO> > queryFactory = () => new Mock <IFilteredQuery <EmployeeProjectDTO, EmployeeProjectFilterDTO> >().Object; var entityMapper = new Mock <IEntityDTOMapper <EmployeeProject, EmployeeProjectDTO> >().Object; var respositoryMock = new Mock <IRepository <EmployeeProject, int> >(); respositoryMock.Setup(r => r.GetById(It.IsAny <int>(), It.IsAny <Expression <Func <EmployeeProject, object> >[]>())).Returns <int, Expression <Func <EmployeeProject, object> >[]>((id, x) => employeeProject); var parentRepositoryMock = new Mock <IRepository <Employee, int> >(); parentRepositoryMock.Setup(r => r.GetById(It.IsAny <int>())).Returns <int>(id => employee); var dateTimeProvider = new LocalDateTimeProvider(); var unitOfWorkProviderMock = new Mock <IUnitOfWorkProvider>(); unitOfWorkProviderMock.Setup(p => p.Create()).Returns(() => new Mock <IUnitOfWork>().Object); var facade = new EmployeeProjectsFacade(queryFactory, entityMapper, respositoryMock.Object, parentRepositoryMock.Object, dateTimeProvider, unitOfWorkProviderMock.Object); // Act - only for debug facade.GetDetail(1); }