public void Setup()
        {
            _createdBy = new UserForAuditing() { Id = Guid.NewGuid() };
            _createdOn = DateTime.Now;
            _deleted = false;
            _initialTaskReoccurringType = TaskReoccurringType.FiveYearly;
            _lastModifiedBy = new UserForAuditing() { Id = Guid.NewGuid() };
            _lastModifiedOn = DateTime.Now;
            _owner = new Employee() { Id = Guid.NewGuid() };
            _site = new Site() { Id = 1346624L };
            _responsibilityCategory = new ResponsibilityCategory() { Id = 21345642L };
            _responsibilityReason = new ResponsibilityReason() { Id = 1234523L };

            _statutoryResponsibilityTaskTemplate = new StatutoryResponsibilityTaskTemplate
                                                       {
                                                           Id = 1L
                                                       };


            _responsibilityTasks = new List<ResponsibilityTask>
                                       {
                                           new ResponsibilityTask
                                               {
                                                   Id = 1L,
                                                   Category = TaskCategory.Create(1, "Test"),
                                                   StatutoryResponsibilityTaskTemplateCreatedFrom =
                                                       _statutoryResponsibilityTaskTemplate
                                               }
                                       };

            _entity = new Mock<Responsibility>();

            _entity.Setup(x => x.Id).Returns(_id);
            _entity.Setup(x => x.CompanyId).Returns(_companyId);
            _entity.Setup(x => x.Description).Returns(_description);
            _entity.Setup(x => x.Site).Returns(_site);
            _entity.Setup(x => x.InitialTaskReoccurringType).Returns(_initialTaskReoccurringType);
            _entity.Setup(x => x.Owner).Returns(_owner);
            _entity.Setup(x => x.Title).Returns(_title);
            _entity.Setup(x => x.ResponsibilityCategory).Returns(_responsibilityCategory);
            _entity.Setup(x => x.ResponsibilityReason).Returns(_responsibilityReason);
            _entity.Setup(x => x.CreatedOn).Returns(_createdOn);
            _entity.Setup(x => x.GetStatusDerivedFromTasks()).Returns(_status);
            _entity.Setup(x => x.Deleted).Returns(_deleted);
            _entity.Setup(x => x.CreatedBy).Returns(_createdBy);
            _entity.Setup(x => x.LastModifiedBy).Returns(_lastModifiedBy);
            _entity.Setup(x => x.LastModifiedOn).Returns(_lastModifiedOn);
            _entity.Setup(x => x.ResponsibilityTasks).Returns(_responsibilityTasks);
        }
        public void Setup()
        {
            _companyId = 234246L;
            _responsibilityRepository = new Mock<IResponsibilityRepository>();
            _employeeRepository = new Mock<IEmployeeRepository>();
            _siteRepository = new Mock<ISiteRepository>();
            _statutoryResponsibilityTaskTemplateRepository = new Mock<IStatutoryResponsibilityTaskTemplateRepository>();
            _userForAuditingRepository = new Mock<IUserForAuditingRepository>();
            _taskCategoryRepository = new Mock<ITaskCategoryRepository>();
            _documentParameterHelper = new Mock<IDocumentParameterHelper>();
            _log = new Mock<IPeninsulaLog>();

            _responsibility = new Responsibility
                                  {
                                      Id = 1L
                                  };
            _site = new Site
                        {
                            Id = 1L
                        };
            _statutoryResponsibilityTaskTemplate = new StatutoryResponsibilityTaskTemplate
                                                       {
                                                           Id = 1L
                                                       };

            _testUser = new UserForAuditing() {CompanyId = _companyId, Id = Guid.NewGuid()};

            _employeeRepository
                .Setup(x => x.GetByIdAndCompanyId(It.IsAny<Guid>(), It.IsAny<long>()))
                .Returns(new Employee() {CompanyId = 1L, Id = Guid.NewGuid()});

            _responsibilityRepository.Setup(x => x.GetByIdAndCompanyId(It.IsAny<long>(), It.IsAny<long>()))
                .Returns(_responsibility);

            _siteRepository.Setup(x => x.GetByIdAndCompanyId(It.IsAny<long>(), It.IsAny<long>()))
                .Returns(_site);

            _statutoryResponsibilityTaskTemplateRepository.Setup(x => x.GetById(It.IsAny<long>()))
                .Returns(_statutoryResponsibilityTaskTemplate);

            _userForAuditingRepository.Setup(x => x.GetById(It.IsAny<Guid>()))
                .Returns(_testUser);

            _taskCategoryRepository.Setup(x => x.GetResponsibilityTaskCategory()).Returns(new TaskCategory());

            _documentParameterHelper.Setup(
                x => x.GetCreateDocumentParameters(It.IsAny<IEnumerable<CreateDocumentRequest>>(), It.IsAny<long>()))
                .Returns(new List<CreateDocumentParameters>());
        }
        public StatutoryResponsibilityTaskTemplateDto Map(StatutoryResponsibilityTaskTemplate entity)
        {
            StatutoryResponsibilityTaskTemplateDto dto = null;

            if (entity != null)
            {
                dto = new StatutoryResponsibilityTaskTemplateDto()
                          {
                              Id = entity.Id,
                              Title = entity.Title,
                              Description = entity.Description,
                              TaskReoccurringType = entity.TaskReoccurringType
                          };
            }
            return dto;
        }
        public void Given_there_are_statutory_template_tasks_when_get_statutory_tasks_then_returns_results()
        {
            //given

            var companydId = 1234L;

            StatutoryResponsibilityTaskTemplate taskTemplate = new StatutoryResponsibilityTaskTemplate{Id = 1234L};

            var resp = new Responsibility() { Id = 12432357 };
            resp.StatutoryResponsibilityTemplateCreatedFrom = new StatutoryResponsibilityTemplate();
            resp.StatutoryResponsibilityTemplateCreatedFrom.ResponsibilityTasks = new List<StatutoryResponsibilityTaskTemplate>();
            resp.StatutoryResponsibilityTemplateCreatedFrom.ResponsibilityTasks.Add(taskTemplate);
            resp.Site = new Site();
            resp.ResponsibilityCategory = new ResponsibilityCategory();
            resp.ResponsibilityReason = new ResponsibilityReason();

            resp.ResponsibilityTasks = new List<ResponsibilityTask>
                                           {
                                               new ResponsibilityTask
                                                   {
                                                       Id = 1L,
                                                       StatutoryResponsibilityTaskTemplateCreatedFrom = taskTemplate
                                                   }
                                           };

            resp.CreatedOn = DateTime.Now;

            _responsibilityRepository
                .Setup(x => x.GetStatutoryByCompanyId(It.IsAny<long>()))
                .Returns(new List<Responsibility>() { resp });

            var target = GetTarget();
            
            //when
            List<ResponsibilityDto> result = target.GetStatutoryResponsibilities(companydId);

            //then

            Assert.That(result.Count,Is.EqualTo(1));
            Assert.That(result.First().StatutoryResponsibilityTaskTemplates.Count(), Is.EqualTo(resp.StatutoryResponsibilityTemplateCreatedFrom.ResponsibilityTasks.Count));            
        }
        public void Setup()
        {
            _companyId = 234246L;
            
            _responsibilityA = new Responsibility { Id = 123L, CompanyId = _companyId };
            _responsibilityB = new Responsibility { Id = 456L, CompanyId = _companyId };

            _responsibilityRepository = new Mock<IResponsibilityRepository>();
            _responsibilityRepository.Setup(x => x.GetByIds(It.IsAny<List<long>>()));
            _responsibilityRepository.Setup(x => x.Save(It.IsAny<Responsibility>()));

            _taskAssignedTo = new Employee { Id = Guid.NewGuid(), CompanyId = _companyId };
            _employeeRepository = new Mock<IEmployeeRepository>();
            _employeeRepository
                .Setup(x => x.GetByIds(It.IsAny<List<Guid>>()))
                .Returns(new List<Employee>() {_taskAssignedTo });

            _site = new Site { Id = 1234L, ClientId = _companyId };
            _siteRepository = new Mock<ISiteRepository>();
            _siteRepository
                .Setup(x => x.GetByIds(It.IsAny<List<long>>()))
                .Returns(new List<Site> { _site });
            
            _statutoryResponsibilityTaskTemplateRepository = new Mock<IStatutoryResponsibilityTaskTemplateRepository>();
            _statutoryResponsibilityTaskTemplateRepository.Setup(x => x.GetById(It.IsAny<long>())).Returns(new StatutoryResponsibilityTaskTemplate());
            
            _creatingUser = new UserForAuditing { Id = Guid.NewGuid() };
            _userForAuditingRepository = new Mock<IUserForAuditingRepository>();
            _userForAuditingRepository
                .Setup(x => x.GetByIdAndCompanyId(_creatingUser.Id, _companyId))
                .Returns(_creatingUser);

            _taskCategory = new TaskCategory()
            {
                Id = 1L
            };

            _taskCategoryRepository = new Mock<ITaskCategoryRepository>();
            _taskCategoryRepository.Setup(x => x.GetResponsibilityTaskCategory())
                .Returns(_taskCategory);

            _documentParameterHelper = new Mock<IDocumentParameterHelper>();
            _log = new Mock<IPeninsulaLog>();

            _taskTemplateA = new StatutoryResponsibilityTaskTemplate { Id = 12345464252L, Title = "task template A title", Description = "task template A description"};
            _taskTemplateB = new StatutoryResponsibilityTaskTemplate { Id = 154764252L, Title = "task template B title", Description = "task template B description" };
            _taskTemplateC = new StatutoryResponsibilityTaskTemplate { Id = 123453252L, Title = "task template C title", Description = "task template C description",  };

            _taskTemplates = new List<StatutoryResponsibilityTaskTemplate> { _taskTemplateA, _taskTemplateB, _taskTemplateC };

            _task1ForResponsibilityA = CreateResponsibilityTasksFromWizardRequest.Create(_companyId, _creatingUser.Id, _site.Id, _responsibilityA.Id, _taskTemplateA.Id,
                                                                            TaskReoccurringType.Weekly, _taskAssignedTo.Id,
                                                                            DateTime.Now.ToShortDateString(),
                                                                            DateTime.Now.AddDays(1).ToShortDateString(),
                                                                            Guid.NewGuid());

            _task2ForResponsibilityA = CreateResponsibilityTasksFromWizardRequest.Create(_companyId, _creatingUser.Id, _site.Id, _responsibilityA.Id, _taskTemplateB.Id,
                                                                            TaskReoccurringType.Weekly, _taskAssignedTo.Id,
                                                                            DateTime.Now.ToShortDateString(),
                                                                            DateTime.Now.AddDays(1).ToShortDateString(),
                                                                            Guid.NewGuid());

            _task1ForResponsibilityB = CreateResponsibilityTasksFromWizardRequest.Create(_companyId, _creatingUser.Id, _site.Id, _responsibilityB.Id, _taskTemplateC.Id,
                                                                            TaskReoccurringType.Weekly, _taskAssignedTo.Id,
                                                                            DateTime.Now.ToShortDateString(),
                                                                            DateTime.Now.AddDays(1).ToShortDateString(),
                                                                            Guid.NewGuid());

            _manyTaskRequest = new CreateManyResponsibilityTaskFromWizardRequest()
            {
                CompanyId = _companyId,
                CreatingUserId = _creatingUser.Id
            };

           
        }