public void ThrowsExceptionWhenThereIsNoSportSpecified() { var request = new AddSportToProfileRequest(); var handler = new AddSportToProfileRequestHandle(_mockIProfileUpdater.Object, _mockSportRepo.Object); var response = handler.Handle(request); Assert.That(response.Status, Is.EqualTo(ResponseCodes.SportNotSpecified)); }
public void CreatesADefaultSkillLevelIfNoneIsSpecified() { const string uniqueId = "MyId"; _request = new AddSportToProfileRequest { Sport = "Soccer", UniqueId = uniqueId }; _profile = new Profile(); SetUpMockProfileUpdaterAndSportRepo(uniqueId); var handler = new AddSportToProfileRequestHandle(_mockIProfileUpdater.Object, _mockSportRepo.Object); handler.Handle(_request); _mockIProfileUpdater.Verify(x => x.AddSportToProfile(_profile, It.Is<SportWithSkillLevel>(n => n.SkillLevel.Level ==Constants.DefaultSkillLevel))); }
public void CanAddSportToProfileViaUniqueIdOfPerson() { const int skillLevel = 5; const string uniqueId = "MyId"; _request = new AddSportToProfileRequest { SkillLevel = skillLevel, Sport = "Soccer", UniqueId = uniqueId }; _profile = new Profile(); SetUpMockProfileUpdaterAndSportRepo(uniqueId); _mockIProfileUpdater.Setup(x => x.AddSportToProfile(It.Is<Profile>(d => d == _profile), It.IsAny<SportWithSkillLevel>())). Callback(() => _profileWasSavedSuccessfully = true); var handler = new AddSportToProfileRequestHandle(_mockIProfileUpdater.Object, _mockSportRepo.Object); var response = handler.Handle(_request); Assert.That(response.Status, Is.EqualTo(ResponseCodes.Success)); Assert.True(_profileWasSavedSuccessfully); }
public void WillNotAddSportIfItAlreadyIsInProfile() { _profile = TestData.MockProfile1(); _request = new AddSportToProfileRequest { SkillLevel = 1, Sport = "Soccer", UniqueId = _profile.ProfileName }; SetUpMockProfileUpdaterAndSportRepo(_profile.ProfileName); _mockSportRepo.Setup(x => x.FindByName(_request.Sport)).Returns(new Sport {Name = "Soccer"}); var handler = new AddSportToProfileRequestHandle(_mockIProfileUpdater.Object, _mockSportRepo.Object); var response = handler.Handle(_request); Assert.That(response.Status, Is.EqualTo(ResponseCodes.SportAlreadyPlayed)); }
public ActionResult Sports(SetupOptionsModel model) { if (string.IsNullOrEmpty(model.ChosenSport) || string.IsNullOrEmpty(model.ChosenSkillLevel)) { ModelState.AddModelError("AvailableSports", "Please choose a sport AND a skill level"); return View("SetupOptions", CreateSetupOptionsModel()); } var profile = GetProfileFromCookie(); var request = new AddSportToProfileRequest { SkillLevel = int.Parse(model.ChosenSkillLevel), Sport = model.ChosenSport, UniqueId = profile }; var handler = new AddSportToProfileRequestHandle(new ProfileRepository(), new SportRepository()); var response = handler.Handle(request); if (response.Status == ResponseCodes.Success) { return View("SetupOptions", CreateSetupOptionsModel()); } var errorMessage = response.Status.GetMessage(); ModelState.AddModelError("", errorMessage); return View("SetupOptions", CreateSetupOptionsModel()); }