public StudyDto CreaStudyDto() { var teamDto = new TeamDto { Id = 1 }; var criteria1 = new CriteriaDto { Name = "Name1", Rule = CriteriaDto.CriteriaRule.SmallerThan, DataMatch = new[] {"2000"}, DataType = DataFieldDto.DataType.String, Description = "Check if the year is before 2000" }; var criteria2 = new CriteriaDto { Name = "Is about...", DataType = DataFieldDto.DataType.Boolean, Rule = CriteriaDto.CriteriaRule.Equals, DataMatch = new[] {"true"}, Description = "Check if the item is about snails." }; var stage1 = new StageDto { Name = "stage1", Criteria = criteria1, DistributionRule = StageDto.Distribution.HundredPercentOverlap, ReviewerIDs = new[] {1, 2}, ValidatorIDs = new[] {3}, VisibleFields = new[] {StageDto.FieldType.Title, StageDto.FieldType.Author} }; var stage2 = new StageDto { Name = "stage2", Criteria = criteria2, DistributionRule = StageDto.Distribution.HundredPercentOverlap, ReviewerIDs = new[] {3, 2}, ValidatorIDs = new[] {4}, VisibleFields = new[] {StageDto.FieldType.Title, StageDto.FieldType.Author} }; var studyDto = new StudyDto { Name = "testStudy", Team = teamDto, Items = Resources.bibtex, Stages = new[] {stage1, stage2} }; return studyDto; }
public void UpdateStudyTest() { //Arrange InitializeStudyDb(); var study = _manager.GetStudy(1); var criteria1 = new CriteriaDto { Name = "updatedName", Rule = CriteriaDto.CriteriaRule.SmallerThan, DataMatch = new[] {"2000"}, DataType = DataFieldDto.DataType.String, Description = "Check if the year is before 2000" }; var stage1 = new StageDto { Name = "updatedStage", Criteria = criteria1, DistributionRule = StageDto.Distribution.HundredPercentOverlap, ReviewerIDs = new[] {1, 2}, ValidatorIDs = new[] {3}, VisibleFields = new[] {StageDto.FieldType.Title, StageDto.FieldType.Author} }; //Action study.Name = "updatedName"; var tempStages = study.Stages.ToList(); tempStages.Add(stage1); study.Stages = tempStages.ToArray(); _manager.UpdateStudy(1, study); var result = _manager.GetStudy(1); //Assert Assert.AreEqual(1, result.Id); Assert.AreEqual("updatedName", result.Name); Assert.AreEqual(3, result.Stages.Length); Assert.AreEqual("updatedStage", result.Stages[2].Name); }
/// <summary> /// Create a stage for a study /// </summary> /// <param name="stageDto">The stageDTO to be created</param> /// <returns></returns> private Stage CreateStage(StageDto stageDto) { var stage = new Stage { Name = stageDto.Name, CurrentTaskType = StudyTask.Type.Review, DistributionRule = (Stage.Distribution) Enum.Parse(typeof (Stage.Distribution), stageDto.DistributionRule.ToString()), VisibleFields = new List<FieldType>(), Users = new List<UserStudies>(), Criteria = new List<Criteria>() }; stageDto.VisibleFields.ForEach( f => stage.VisibleFields.Add(new FieldType(f.ToString()))); stageDto.ReviewerIDs.ForEach(u => stage.Users.Add(new UserStudies { StudyRole = UserStudies.Role.Reviewer, User = _teamStorage.GetUser(u) })); stageDto.ValidatorIDs.ForEach(u => stage.Users.Add(new UserStudies { StudyRole = UserStudies.Role.Validator, User = _teamStorage.GetUser(u) })); var criteria = new Criteria { Name = stageDto.Criteria.Name, DataMatch = stageDto.Criteria.DataMatch.Select(s => new StoredString {Value = s}).ToArray(), DataType = (DataField.DataType) Enum.Parse(typeof (DataField.DataType), stageDto.Criteria.DataType.ToString()), Description = stageDto.Criteria.Description, Rule = (Criteria.CriteriaRule) Enum.Parse(typeof (Criteria.CriteriaRule), stageDto.Criteria.Rule.ToString()) }; if (stageDto.Criteria.TypeInfo != null) { criteria.TypeInfo = stageDto.Criteria.TypeInfo.Select(s => new StoredString {Value = s}).ToArray(); } stage.Criteria.Add(criteria); return stage; }