private dynamic CreateProject() { try { if (!isAuthenticated()) { return(Unauthorized()); } var data = this.Bind <Dictionary <string, string> >(); var cmd = new CreateProject(Guid.Parse(data["id"]), data["title"], data["category"], data["creator"]); var validator = new CreateProjectValidator(); validator.Validate(cmd); _service.CreateProject(cmd); return(NotImplemented()); } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public void DataOwnerIsNotSet_ShouldNotValidate() { var projects = A.Fake <IProjects>(); A.CallTo(() => projects.GetAll()).Returns( new[] { new Project { Name = "name" } } ); var validator = new CreateProjectValidator(new ProjectRules(projects)); var validationResult = validator.Validate(new CreateProject { Name = "name" }); Assert.Contains(validationResult.Errors, e => e.ErrorMessage.Equals("Data owner id is mandatory")); }
public void NameIsNotValid_ShouldNotValidate(string name) { var projects = A.Fake <IProjects>(); A.CallTo(() => projects.GetAll()).Returns( new[] { new Read.Projects.Project { Name = "name" } } ); var validator = new CreateProjectValidator(new ProjectRules(projects)); var validationResult = validator.Validate(new CreateProject { Name = name }); Assert.Contains(validationResult.Errors, e => e.ErrorMessage.Equals("Name is mandatory")); }
public void NationalSocietyIdIsEmpty_ShouldNotValidate() { var projects = A.Fake <IProjects>(); A.CallTo(() => projects.GetAll()).Returns( new[] { new Project { Name = "name" } } ); var validator = new CreateProjectValidator(new ProjectRules(projects)); var validationResult = validator.Validate(new CreateProject { Name = "name", DataOwnerId = Guid.NewGuid(), NationalSocietyId = Guid.Empty }); Assert.Contains(validationResult.Errors, e => e.ErrorMessage.Equals("National society id is mandatory")); }
public void CreateProject_ShouldValidate() { var projects = A.Fake <IProjects>(); A.CallTo(() => projects.GetAll()).Returns( new[] { new Project { Name = "name" } } ); var validator = new CreateProjectValidator(new ProjectRules(projects)); var validationResult = validator.Validate(new CreateProject { Name = "name2", DataOwnerId = Guid.NewGuid(), NationalSocietyId = Guid.NewGuid(), SurveillanceContext = ProjectSurveillanceContext.AggregateReports }); Assert.True(validationResult.IsValid); }
public void ProjectNameMustBeUnique() { var projects = A.Fake <IProjects>(); A.CallTo(() => projects.GetAll()).Returns( new[] { new Project { Name = "name" } } ); var validator = new CreateProjectValidator(new ProjectRules(projects)); var validationResult = validator.Validate(new CreateProject { Name = "name", DataOwnerId = Guid.NewGuid(), NationalSocietyId = Guid.NewGuid(), SurveillanceContext = ProjectSurveillanceContext.AggregateReports }); Assert.False(validationResult.IsValid); Assert.Contains(validationResult.Errors, e => e.ErrorMessage.Equals("Project name is already in use")); }