Beispiel #1
0
        public void Edit(TeamEditBindingModel teamBindingModel)
        {
            Team team = this.teamRepository.SingleOrDefault(t => t.Id == teamBindingModel.Id);

            if (team == null)
            {
                throw new InvalidOperationException(string.Format(ServicesConstants.EntityNotFound, "Team"));
            }

            // If name is about to be changed.
            if (team.Name != teamBindingModel.Name)
            {
                if (this.IsTeamNameTaken(teamBindingModel.Name))
                {
                    throw new InvalidOperationException(string.Format(ServicesConstants.EntityAlreadyExists, "Team", "name"));
                }
            }

            team.Name        = teamBindingModel.Name;
            team.Acronym     = teamBindingModel.Acronym;
            team.Description = teamBindingModel.Description;

            if (!this.teamRepository.IsEntityValid(team))
            {
                throw new ValidationException(string.Format(ServicesConstants.EntityNotValid, "Team"));
            }

            bool hasUpdated = this.teamRepository.Update(team);

            if (!hasUpdated)
            {
                throw new InvalidOperationException(string.Format(ServicesConstants.EntityAlreadyExists, "Team", "name"));
            }
        }
Beispiel #2
0
        public ActionResult Edit([Bind(Include = "Id,Name,Description,Acronym")] TeamEditBindingModel teamBindingModel)
        {
            if (ModelState.IsValid)
            {
                this.teamService.Edit(teamBindingModel);

                return(this.RedirectToAction("Details", new { id = teamBindingModel.Name }));
            }

            return(this.View(teamBindingModel));
        }
Beispiel #3
0
        // GET: Team/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            TeamEditBindingModel team = this.teamService.Find <TeamEditBindingModel>(id.Value);

            if (team == null)
            {
                return(this.HttpNotFound());
            }

            return(this.View(team));
        }
Beispiel #4
0
        public void EditTeam_Description_WithInvalidData_ShouldThrowException()
        {
            Team team = this.AddTeam();

            team.Id = Utilities.GenerateUniqueRandomInteger();

            TeamEditBindingModel editedTeam = Mapper.Instance.Map <TeamEditBindingModel>(team);

            editedTeam.Description = string.Empty;

            ValidationException va = Assert.Throws <ValidationException>(
                () =>
            {
                this.teamService.Edit(editedTeam);
            });

            Assert.That(va.Message, Is.EqualTo("Team not valid."));
        }
Beispiel #5
0
        public void EditTeam_Name_ShouldChangeTeamName()
        {
            Team expectedTeam = this.AddTeam();

            expectedTeam.Id = Utilities.GenerateUniqueRandomInteger();

            TeamEditBindingModel editedTeam = Mapper.Map <TeamEditBindingModel>(expectedTeam);

            editedTeam.Name = "DifferentName";

            this.teamService.Edit(editedTeam);

            Team actualTeam = this.repository.SingleOrDefault(t => t.Name == editedTeam.Name);

            Assert.IsNotNull(actualTeam);

            Assert.AreEqual(editedTeam.Name, actualTeam.Name);
            Assert.AreEqual(editedTeam.Acronym, actualTeam.Acronym);
            Assert.AreEqual(editedTeam.Description, actualTeam.Description);
            Assert.AreEqual(editedTeam.Acronym, actualTeam.Acronym);
        }
Beispiel #6
0
        public void EditTeam_Name_WithAlreadyExistingName_ShouldThrowException()
        {
            Team firstTeam = this.AddTeam();

            firstTeam.Id = Utilities.GenerateUniqueRandomInteger();

            Team secondTeam = this.AddTeam();

            secondTeam.Id = Utilities.GenerateUniqueRandomInteger();

            TeamEditBindingModel editedTeam = Mapper.Map <TeamEditBindingModel>(secondTeam);

            editedTeam.Name = firstTeam.Name;

            InvalidOperationException ioe = Assert.Throws <InvalidOperationException>(
                () =>
            {
                this.teamService.Edit(editedTeam);
            });

            Assert.That(ioe.Message, Is.EqualTo("Team with same name already exists."));
        }