public PlayerWithNemesisViewModel Build(PlayerWithNemesis playerWithNemesis, ApplicationUser currentUser) { ValidatePlayerNotNull(playerWithNemesis); AddInactivePlayerSuffix(playerWithNemesis); PlayerWithNemesisViewModel model = new PlayerWithNemesisViewModel { PlayerId = playerWithNemesis.PlayerId, PlayerName = playerWithNemesis.PlayerName, PlayerActive = playerWithNemesis.PlayerActive, PlayerRegistered = playerWithNemesis.PlayerRegistered, UserCanEdit = (currentUser != null && playerWithNemesis.GamingGroupId == currentUser.CurrentGamingGroupId), NemesisPlayerId = playerWithNemesis.NemesisPlayerId, NemesisPlayerName = playerWithNemesis.NemesisPlayerName, PreviousNemesisPlayerId = playerWithNemesis.PreviousNemesisPlayerId, PreviousNemesisPlayerName = playerWithNemesis.PreviousNemesisPlayerName, NumberOfPlayedGames = playerWithNemesis.GamesLost + playerWithNemesis.GamesWon, OverallWinPercentage = WinPercentageCalculator.CalculateWinPercentage(playerWithNemesis.GamesWon, playerWithNemesis.GamesLost), TotalPoints = playerWithNemesis.TotalPoints, TotalChampionedGames = playerWithNemesis.TotalChampionedGames }; return(model); }
public PlayerWithNemesisViewModel Build(PlayerWithNemesis playerWithNemesis, string email, ApplicationUser currentUser) { ValidatePlayerNotNull(playerWithNemesis); AddInactivePlayerSuffix(playerWithNemesis); var totalGamesPlayed = playerWithNemesis.GamesLost + playerWithNemesis.GamesWon; var model = new PlayerWithNemesisViewModel { PlayerId = playerWithNemesis.PlayerId, PlayerName = playerWithNemesis.PlayerName, PlayerActive = playerWithNemesis.PlayerActive, PlayerRegistered = playerWithNemesis.PlayerRegistered, RegisteredUserEmailAddress = email, UserCanEdit = (currentUser != null && playerWithNemesis.GamingGroupId == currentUser.CurrentGamingGroupId), NemesisPlayerId = playerWithNemesis.NemesisPlayerId, NemesisPlayerName = playerWithNemesis.NemesisPlayerName, PreviousNemesisPlayerId = playerWithNemesis.PreviousNemesisPlayerId, PreviousNemesisPlayerName = playerWithNemesis.PreviousNemesisPlayerName, NumberOfPlayedGames = totalGamesPlayed, OverallWinPercentage = WinPercentageCalculator.CalculateWinPercentage(playerWithNemesis.GamesWon, playerWithNemesis.GamesLost), NemePointsSummary = new NemePointsSummaryViewModel(playerWithNemesis.NemePointsSummary), TotalChampionedGames = playerWithNemesis.TotalChampionedGames, AveragePointsPerGame = totalGamesPlayed > 0 ? (float)playerWithNemesis.NemePointsSummary.TotalPoints / (float)totalGamesPlayed : 0, AchievementsPerLevel = playerWithNemesis.AchievementsPerLevel }; return(model); }
public void TheUserCanNotEditViewModelIfTheyDoNotShareGamingGroups() { currentUser.CurrentGamingGroupId = -1; PlayerWithNemesisViewModel actualViewModel = builder.Build(this.playerWithNemesis, this.currentUser); Assert.False(actualViewModel.UserCanEdit); }
public void It_Returns_The_Players_In_The_Specific_Gaming_Group_With_The_Specified_Date_Filter() { //--arrange var gamingGroupId = 1; var currentUser = new ApplicationUser(); var dateRangeFilter = new BasicDateRangeFilter(); var expectedResults = new List <PlayerWithNemesis> { new PlayerWithNemesis(), new PlayerWithNemesis() }; var expectedResult1 = new PlayerWithNemesisViewModel(); var expectedResult2 = new PlayerWithNemesisViewModel(); autoMocker.Get <IPlayerRetriever>().Expect(mock => mock.GetAllPlayersWithNemesisInfo(gamingGroupId, dateRangeFilter)).Return(expectedResults); autoMocker.Get <IPlayerWithNemesisViewModelBuilder>().Expect(mock => mock.Build(expectedResults[0], currentUser)).Return(expectedResult1); autoMocker.Get <IPlayerWithNemesisViewModelBuilder>().Expect(mock => mock.Build(expectedResults[1], currentUser)).Return(expectedResult2); //--act var result = autoMocker.ClassUnderTest.GetGamingGroupPlayers(gamingGroupId, currentUser, dateRangeFilter); //--assert var viewResult = result as PartialViewResult; viewResult.ShouldNotBeNull(); viewResult.ViewName.ShouldBe(MVC.Player.Views._PlayersPartial); var model = viewResult.Model as List <PlayerWithNemesisViewModel>; model.ShouldNotBeNull(); model.Count.ShouldBe(2); model[0].ShouldBeSameAs(expectedResult1); model[1].ShouldBeSameAs(expectedResult2); }
public void ItCopiesTheNemePointsSummary() { PlayerWithNemesisViewModel actualViewModel = builder.Build(playerWithNemesis, null, currentUser); var expected = new NemePointsSummaryViewModel(playerWithNemesis.NemePointsSummary); Assert.AreEqual(expected, actualViewModel.NemePointsSummary); }
public void ItCalculatesAveragePoints() { PlayerWithNemesisViewModel actualViewModel = builder.Build(playerWithNemesis, null, currentUser); var avgPoints = (float)playerWithNemesis.NemePointsSummary.TotalPoints / (float)(playerWithNemesis.GamesWon + playerWithNemesis.GamesLost); Assert.AreEqual(avgPoints, actualViewModel.AveragePointsPerGame); }
public void ItAddsAnInactivePlayerSuffixToInactivePlayers() { playerWithNemesis.PlayerActive = false; string expectedPlayerName = playerWithNemesis.PlayerName + " (INACTIVE)"; PlayerWithNemesisViewModel actualViewModel = builder.Build(this.playerWithNemesis, this.currentUser); Assert.AreEqual(expectedPlayerName, actualViewModel.PlayerName); }
public void ItCopiesThePlayerNameForActivePlayers() { PlayerWithNemesisViewModel actualViewModel = builder.Build(this.playerWithNemesis, this.currentUser); Assert.AreEqual(this.playerWithNemesis.PlayerName, actualViewModel.PlayerName); }
public void ItSetsTheOverallWinPercentage() { PlayerWithNemesisViewModel actualViewModel = builder.Build(this.playerWithNemesis, this.currentUser); Assert.AreEqual(50, actualViewModel.OverallWinPercentage); }
public void TheUserCanNotEditViewModelIfTheUserIsUnknown() { PlayerWithNemesisViewModel actualViewModel = builder.Build(this.playerWithNemesis, null); Assert.False(actualViewModel.UserCanEdit); }
public void ItCopiesThePlayerId() { PlayerWithNemesisViewModel actualViewModel = builder.Build(this.playerWithNemesis, this.currentUser); Assert.AreEqual(this.playerWithNemesis.PlayerId, actualViewModel.PlayerId); }
public void TheUserCanEditViewModelIfTheyShareGamingGroups() { PlayerWithNemesisViewModel actualViewModel = builder.Build(this.playerWithNemesis, this.currentUser); Assert.True(actualViewModel.UserCanEdit); }
public void ItCopiesTheNemesisPlayerId() { PlayerWithNemesisViewModel actualViewModel = builder.Build(playerWithNemesis, null, currentUser); Assert.AreEqual(playerWithNemesis.NemesisPlayerId, actualViewModel.NemesisPlayerId); }
public void TheUserHasChampionBadges() { PlayerWithNemesisViewModel actualViewModel = builder.Build(this.playerWithNemesis, this.currentUser); Assert.AreEqual(this.playerWithNemesis.TotalChampionedGames, actualViewModel.TotalChampionedGames); }
public void ItCopiesThePlayerActiveFlag() { PlayerWithNemesisViewModel actualViewModel = builder.Build(playerWithNemesis, null, currentUser); Assert.AreEqual(playerWithNemesis.PlayerActive, actualViewModel.PlayerActive); }
public void ItCopiesThePreviousNemesisPlayerName() { PlayerWithNemesisViewModel actualViewModel = builder.Build(playerWithNemesis, null, currentUser); Assert.AreEqual(playerWithNemesis.PreviousNemesisPlayerName, actualViewModel.PreviousNemesisPlayerName); }
public void ItCopiesTheNumberOfPlayedGames() { PlayerWithNemesisViewModel actualViewModel = builder.Build(this.playerWithNemesis, this.currentUser); Assert.AreEqual(this.playerWithNemesis.GamesWon + playerWithNemesis.GamesLost, actualViewModel.NumberOfPlayedGames); }
public void ItSetsThePlayerRegisteredFlagToTrueIfThePlayerHasAnApplicationUserId() { PlayerWithNemesisViewModel actualViewModel = builder.Build(this.playerWithNemesis, this.currentUser); Assert.AreEqual(true, actualViewModel.PlayerRegistered); }
public void ItCopiesTheTotalPoints() { PlayerWithNemesisViewModel actualViewModel = builder.Build(this.playerWithNemesis, this.currentUser); Assert.AreEqual(this.playerWithNemesis.TotalPoints, actualViewModel.TotalPoints); }
public void ItCopiesThePlayerRegisteredFlag() { PlayerWithNemesisViewModel actualViewModel = builder.Build(playerWithNemesis, currentUser); Assert.AreEqual(playerWithNemesis.PlayerRegistered, actualViewModel.PlayerRegistered); }