Exemple #1
0
        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));
            }
        }
Exemple #2
0
        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"));
        }
Exemple #4
0
        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"));
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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"));
        }