public void TryUpdateModelIsCalled_WhenItemIsFound() { // Arrange var viewMock = new Mock <ITeamView>(); viewMock.Setup(v => v.ModelState).Returns(new ModelStateDictionary()); int teamId = 1; string teamName = "TeamName"; double teamRating = 10; var teamServiceMock = new Mock <ITeamService>(); teamServiceMock.Setup(c => c.GetTeamById(teamId)).Returns(new List <Team> { new Team() { Id = teamId, Name = teamName, Rating = teamRating } }); TeamPresenter teamPresenter = new TeamPresenter (viewMock.Object, teamServiceMock.Object); // Act viewMock.Raise(v => v.OnUpdateItem += null, new IdEventArgs(teamId)); // Assert viewMock.Verify(v => v.TryUpdateModel(It.IsAny <Team>()), Times.Once()); }
public void UpdateCategoryIsNotCalled_WhenItemIsFoundAndIsInInvalidState() { // Arrange var viewMock = new Mock <ITeamView>(); var modelState = new ModelStateDictionary(); modelState.AddModelError("test key", "test message"); viewMock.Setup(v => v.ModelState).Returns(modelState); int teamId = 1; string teamName = "TeamName"; double teamRating = 10; var teamServiceMock = new Mock <ITeamService>(); var team = new Team() { Id = teamId, Name = teamName, Rating = teamRating }; teamServiceMock.Setup(c => c.GetTeamById(teamId)).Returns(new List <Team>() { team }); TeamPresenter teamPresenter = new TeamPresenter(viewMock.Object, teamServiceMock.Object); // Act viewMock.Raise(v => v.OnUpdateItem += null, new IdEventArgs(teamId)); // Assert teamServiceMock.Verify(c => c.UpdateTeam(team), Times.Never()); }
public void CreateCorrectInstanceOfTeamPresenter_WhenPassedArgumentsAreValid() { var teamServiceMock = new Mock <ITeamService>(); var viewMock = new Mock <ITeamView>(); viewMock.Setup(v => v.Model).Returns(new TeamViewModel()); TeamPresenter teamPresenter = new TeamPresenter(viewMock.Object, teamServiceMock.Object); Assert.IsInstanceOf <TeamPresenter>(teamPresenter); }
public void AddTeamToViewModel_WhenOnGetTeamEventIsRaised() { var viewMock = new Mock <ITeamView>(); viewMock.Setup(v => v.Model).Returns(new TeamViewModel()); Team team = new Team(); var teamServiceMock = new Mock <ITeamService>(); teamServiceMock.Setup(x => x.GetTeamById(It.IsAny <int>())).Returns(team); TeamPresenter teamPresenter = new TeamPresenter(viewMock.Object, teamServiceMock.Object); viewMock.Raise(x => x.OnGetTeam += null, new IdEventArgs(It.IsAny <int>())); Assert.AreEqual(team, viewMock.Object.Model.Team); }
public void TryUpdateModelIsNotCalled_WhenItemIsNotFound() { // Arrange var viewMock = new Mock <ITeamView>(); viewMock.Setup(v => v.ModelState).Returns(new ModelStateDictionary()); string errorKey = string.Empty; int teamId = 1; var teamServiceMock = new Mock <ITeamService>(); teamServiceMock.Setup(c => c.GetTeamById(teamId)).Returns <Team>(null); TeamPresenter teamPresenter = new TeamPresenter (viewMock.Object, teamServiceMock.Object); // Act viewMock.Raise(v => v.OnUpdateItem += null, new IdEventArgs(teamId)); // Assert viewMock.Verify(v => v.TryUpdateModel(It.IsAny <Team>()), Times.Never()); }
public void CallGetAllTeamsSortedById_WhenOnGetDataEventIsRaised() { //Arrange var viewMock = new Mock <ITeamView>(); viewMock.Setup(v => v.Model).Returns(new TeamViewModel()); var teams = GetTeams(); var teamServiceMock = new Mock <ITeamService>(); teamServiceMock.Setup(c => c.GetAllTeamsSortedById()) .Returns(teams); TeamPresenter teamPresenter = new TeamPresenter(viewMock.Object, teamServiceMock.Object); // Act viewMock.Raise(v => v.OnGetData += null, EventArgs.Empty); // Assert CollectionAssert.AreEquivalent(teams, viewMock.Object.Model.Teams); // TODO CHECK ORDER }
public void AddModelError_WhenItemIsNotFound() { // Arrange var viewMock = new Mock <ITeamView>(); viewMock.Setup(v => v.ModelState).Returns(new ModelStateDictionary()); string errorKey = string.Empty; int teamId = 1; string expectedError = String.Format("Item with id {0} was not found", teamId); var teamServiceMock = new Mock <ITeamService>(); teamServiceMock.Setup(t => t.GetTeamById(teamId)).Returns <Team>(null); TeamPresenter teamPresenter = new TeamPresenter (viewMock.Object, teamServiceMock.Object); // Act viewMock.Raise(v => v.OnUpdateItem += null, new IdEventArgs(teamId)); var actualResult = viewMock.Object.ModelState[errorKey].Errors[0].ErrorMessage; // Assert Assert.AreEqual(1, viewMock.Object.ModelState[errorKey].Errors.Count); StringAssert.AreEqualIgnoringCase(expectedError, actualResult); }
/// <summary> /// Validates the date. /// </summary> /// <param name="presenter">The presenter.</param> /// <param name="resultMessage">The result Message.</param> /// <returns> /// true in case validated. /// </returns> private static bool ValidateDate(TeamPresenter presenter, out string resultMessage) { bool isValidDate = true; resultMessage = string.Empty; if (!presenter.Developer.BirthDate.HasValue) { resultMessage = Resources.DateOfBirthErrorMessage; isValidDate = false; } else if (!presenter.Developer.BirthDate.Value.IsValidDatabaseDate()) { resultMessage = Resources.ValidDateErrorMessage; isValidDate = false; } else if (presenter.Developer.BirthDate.Value.Date > DateTimeHelper.RetrieveCurrentDate()) { resultMessage = Resources.ValidDateErrorMessage; isValidDate = false; } return isValidDate; }
private static void Validate(TeamPresenter presenter) { string resultMessage; if (string.IsNullOrEmpty(presenter.Developer.Name) || presenter.Developer.Name.Trim().Length <= 0) { presenter.ValidationErrors.Add(DeveloperName, Resources.NameErrorMessage); } if (!presenter.Developer.JoiningDate.HasValue) { presenter.ValidationErrors.Add(ValidDOJ, Resources.ErrorMessageEmptyDOJ); } else if (!presenter.Developer.JoiningDate.Value.IsValidDatabaseDate()) { presenter.ValidationErrors.Add(ValidDOJ, Resources.ErrorMessageInvalidDOJ); } if (presenter.Developer.MaritalStatus == null) { presenter.ValidationErrors.Add(MartialStatus, Resources.ErrorMaritalStatus); } if (presenter.Developer.Gender == null) { presenter.ValidationErrors.Add(Gender, Resources.ErrorMEssageGender); } if (!ValidateDate(presenter, out resultMessage)) { presenter.ValidationErrors.Add(ValidDOB, resultMessage); } if (Convert.ToInt32(presenter.Developer.DesignationID, CultureInfo.CurrentCulture) == -1) { presenter.ValidationErrors.Add(Designation, Resources.DesignationValidationMessage); } if (Convert.ToInt32(presenter.Developer.TimeZoneID, CultureInfo.CurrentCulture) == -1) { presenter.ValidationErrors.Add(TimeZone, Resources.TimeZoneValidationMessage); } if (Convert.ToInt32(presenter.Developer.RoleID, CultureInfo.CurrentCulture) == -1) { presenter.ValidationErrors.Add(RoleName, Resources.RoleValidationMessage); } if (presenter.Developer.ProductivityPerDay == null) { presenter.ValidationErrors.Add(ProductiveHour, Resources.ProductiveHourValidationMessage); } if (presenter.Developer.LoginID == null) { presenter.ValidationErrors.Add(LoginId, Resources.LoginIdValidationMessage); } if (!string.IsNullOrEmpty(presenter.Developer.Email)) { Regex regularExpression = new Regex(StrRegex); if (!regularExpression.IsMatch(presenter.Developer.Email)) { presenter.ValidationErrors.Add(Email, Resources.EmailValidationMessage); } } }
public ActionResult ValidateDetails(TeamPresenter presenter) { ModelState.Clear(); if (presenter != null) { Validate(presenter); if (presenter.SelfId == -1) { presenter.Developer.ManagerID = null; } else { presenter.Developer.ManagerID = presenter.SelfId; } presenter.ValidationErrors.Append(this.developerService.Validate(presenter.Developer)); } return new JsonResult { Data = presenter, MaxJsonLength = int.MaxValue }; }
public ActionResult SubmitDetails(TeamPresenter presenter) { if (presenter != null) { if (presenter.SelfId == -1) { presenter.Developer.ManagerID = null; } else { presenter.Developer.ManagerID = presenter.SelfId; } presenter.Developer.UserType = presenter.IsAdmin ? UserType.Admin : UserType.Normal; presenter.Developer.ModifiedByDeveloperID = SessionData.Instance.UserInfo.Developer.DeveloperID; if (Convert.ToInt32(presenter.Developer.TimeZoneID, CultureInfo.CurrentCulture) == -1) { presenter.Developer.TimeZoneID = null; if (presenter.Developer.DeveloperID == SessionData.Instance.UserInfo.Developer.DeveloperID) { presenter.Developer.TimeZoneOffset = presenter.Offset; } } presenter.Developer.CompanyID = SessionData.Instance.UserInfo.Developer.CompanyID; this.developerService.InsertOrUpdate(presenter.Developer); if (presenter.Developer.DeveloperID == SessionData.Instance.UserInfo.Developer.DeveloperID) { var developer = this.developerService.RetrieveByUserName(presenter.Developer.LoginID, SessionData.Instance.UserInfo.Developer.DeveloperID); if (developer != null) { SessionData.Instance.UserInfo.Developer = developer; } if (!presenter.Developer.TimeZoneID.HasValue) { SessionData.Instance.UserInfo.TimeZoneInfo = new DeCurtis.Insight.Domain.TimeZoneInfo { TimeZoneOffset = presenter.Offset }; } else { var timeZone = this.lookupService.RetrieveTimeZoneById(presenter.Developer.TimeZoneID.Value); SessionData.Instance.UserInfo.Developer.TimeZone = timeZone; SessionData.Instance.UserInfo.Developer.TimeZoneOffset = timeZone.Offset; } } } return this.Json(string.Empty); }
/// <summary> /// Adds the update. /// </summary> /// <param name="developerId">The developer id.</param> /// <param name="supervisorId">The supervisor id.</param> /// <param name="roleId">The role id.</param> /// <param name="projectId">The project identifier.</param> /// <param name="tabId">The tab identifier.</param> /// <param name="includeInactive">The include inactive.</param> /// <returns> /// Add Update page /// </returns> public ActionResult AddUpdate(string developerId, string supervisorId, string roleId, string projectId, string tabId, string includeInactive) { TeamPresenter presenter = new TeamPresenter(); if (projectId == null) { this.AddBreadcrumbItem(Resources.Assignments, Url.AssignmentsAction()); } else { presenter.ProjectId = projectId; presenter.TabId = tabId; this.AddBreadcrumbItem(Resources.ProjectDashboard, RetrieveProjectDashboardAddress(Url.ProjectDashboardAction(), presenter.ProjectId, presenter.TabId)); } if (!string.IsNullOrEmpty(includeInactive)) { presenter.IncludeInactive = Convert.ToBoolean(includeInactive, CultureInfo.CurrentCulture); } presenter.SelectedRoleId = roleId; presenter.SelectedSupervisorId = supervisorId; presenter.AssignRoles(this.lookupService.RetrieveRoles(null, null, SessionData.Instance.UserInfo.Developer.DeveloperID), false); presenter.AssignDesignations(this.lookupService.RetrieveDesignations(SessionData.Instance.UserInfo.Developer.DeveloperID)); presenter.AssignUserTypes(this.lookupService.RetrieveUserTypes(SessionData.Instance.UserInfo.Developer.DeveloperID)); presenter.AssignTimeZones(this.lookupService.RetrieveTimeZones()); presenter.Designations.Insert(0, new LookupItem { ID = -1, Name = Resources.SelectDesignation }); presenter.Roles.Insert(0, new LookupItem { ID = -1, Name = Resources.SelectRole }); var supervisors = this.lookupService.RetrieveDevelopers(null, null, SessionData.Instance.UserInfo.Developer.DeveloperID); var maritalStatus = this.lookupService.RetrieveMaritalStatusList(SessionData.Instance.UserInfo.Developer.DeveloperID); if (string.IsNullOrEmpty(developerId)) { // Add view this.AddBreadcrumbItem(Resources.AddTeam, Url.ManageTeamAction()); presenter.Developer = new Developer(); presenter.Developer.LoginID = LoginIdValue; presenter.Developer.ProductivityPerDay = ApplicationSettings.Instance.TeamMemberProductiveHours; presenter.AssignSupervisors(supervisors, false); presenter.AssignMaritalStatus(maritalStatus); presenter.MaritalStatusList.Insert(0, new LookupItem { ID = -1, Name = Resources.SelectMaritalStatus }); } else { //// Edit view this.AddBreadcrumbItem(Resources.EditTeamMember, Url.ManageTeamAction()); presenter.IsEdit = true; presenter.AssignSupervisors(supervisors.Where(item => item.ID != Convert.ToInt32(developerId, CultureInfo.CurrentCulture)).ToList(), false); presenter.Developer = this.developerService.RetrieveById(Convert.ToInt32(developerId, CultureInfo.CurrentCulture)); presenter.AssignMaritalStatus(maritalStatus); presenter.MaritalStatusList.Insert(0, new LookupItem { ID = -1, Name = Resources.SelectMaritalStatus }); if (presenter.Developer.UserType == UserType.Admin) { presenter.IsAdmin = true; } if (presenter.Developer.ManagerID == null) { presenter.SelfId = -1; } else { presenter.SelfId = Convert.ToInt32(presenter.Developer.ManagerID, CultureInfo.CurrentCulture); } } ////presenter.OldPassword = presenter.Developer.Password; presenter.Supervisors.Insert(0, new LookupItem { ID = -1, Name = "- Self -" }); presenter.TimeZoneList.Insert(0, new TimeZoneInfoListItem { TimeZoneID = -1, Name = Resources.SelectTimeZone }); return this.View("AddUpdate", presenter); }