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);
        }
Beispiel #2
0
        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);
        }