public void ItSetsTheNewNemesisIfItChanged() { NemesisData nemesisData = new NemesisData() { NemesisPlayerId = -1 }; _playerRepositoryMock.Expect(mock => mock.GetNemesisData(_playerId)) .Return(nemesisData); _dataContextMock.Expect(mock => mock.GetQueryable<Nemesis>()) .Return(new List<Nemesis>().AsQueryable()); _nemesisRecalculator.RecalculateNemesis(_playerId, _currentUser); _dataContextMock.AssertWasCalled(mock => mock.Save<Nemesis>( Arg<Nemesis>.Matches(savedNemesis => savedNemesis.MinionPlayerId == _playerId && savedNemesis.NemesisPlayerId == nemesisData.NemesisPlayerId && savedNemesis.NumberOfGamesLost == nemesisData.NumberOfGamesLost && savedNemesis.LossPercentage == nemesisData.LossPercentage), Arg<ApplicationUser>.Is.Same(_currentUser))); _dataContextMock.AssertWasCalled(mock => mock.Save<Player>( Arg<Player>.Matches(player => player.NemesisId == _newNemesisId), Arg<ApplicationUser>.Is.Same(_currentUser))); }
public void ItReturnsTheNewNemesisIfItWasChanged() { //change the nemesis NemesisData nemesisData = new NemesisData() { NemesisPlayerId = 19383 }; _playerRepositoryMock.Expect(mock => mock.GetNemesisData(_playerId)) .Return(nemesisData); List<Nemesis> nemesisList = new List<Nemesis>(); Nemesis existingNemesis = new Nemesis() { Id = _existingNemesisId, MinionPlayerId = _playerId }; nemesisList.Add(existingNemesis); _dataContextMock.Expect(mock => mock.GetQueryable<Nemesis>()) .Return(nemesisList.AsQueryable()); Nemesis actualNemesis = _nemesisRecalculator.RecalculateNemesis(_playerId, _currentUser); Assert.AreSame(_savedNemesis, actualNemesis); }
public void ItReturnsTheUpdatedNemesisIfItWasUpdated() { int expectedLossPercentage = 15; NemesisData nemesisData = new NemesisData() { LossPercentage = expectedLossPercentage }; _playerRepositoryMock.Expect(mock => mock.GetNemesisData(_playerId)) .Return(nemesisData); List<Nemesis> nemesisList = new List<Nemesis>(); Nemesis existingNemesis = new Nemesis() { Id = _existingNemesisId, MinionPlayerId = _playerId }; nemesisList.Add(existingNemesis); _dataContextMock.Expect(mock => mock.GetQueryable<Nemesis>()) .Return(nemesisList.AsQueryable()); Nemesis actualNemesis = _nemesisRecalculator.RecalculateNemesis(_playerId, _currentUser); Assert.AreSame(_savedNemesis, actualNemesis); }
public void ItUpdatesTheExistingNemesisIfOnlyTheDataHasChanged() { int nemesisPlayerId = 1; int gamesLost = 1; int lossPercentage = 1; NemesisData nemesisData = new NemesisData() { NemesisPlayerId = nemesisPlayerId, NumberOfGamesLost = gamesLost, LossPercentage = lossPercentage }; _playerRepositoryMock.Expect(mock => mock.GetNemesisData(_playerId)) .Return(nemesisData); List<Nemesis> nemesisList = new List<Nemesis>(); Nemesis existingNemesis = new Nemesis() { Id = _existingNemesisId, NemesisPlayerId = nemesisPlayerId, MinionPlayerId = _playerId, //add 1 so the data is different NumberOfGamesLost = gamesLost + 1, LossPercentage = lossPercentage }; nemesisList.Add(existingNemesis); _dataContextMock.Expect(mock => mock.GetQueryable<Nemesis>()) .Return(nemesisList.AsQueryable()); _nemesisRecalculator.RecalculateNemesis(_playerId, _currentUser); _dataContextMock.AssertWasCalled(mock => mock.Save<Nemesis>( Arg<Nemesis>.Matches(nem => nem.Id == _existingNemesisId && nem.MinionPlayerId == _playerId && nem.NemesisPlayerId == nemesisPlayerId && nem.NumberOfGamesLost == nemesisData.NumberOfGamesLost && nem.LossPercentage == nemesisData.LossPercentage), Arg<ApplicationUser>.Is.Anything)); }
public void ItDoesntBotherSavingTheNemesisIfNothingHasChanged() { int nemesisPlayerId = 1; int gamesLost = 1; int lossPercentage = 1; NemesisData nemesisData = new NemesisData() { NemesisPlayerId = nemesisPlayerId, NumberOfGamesLost = gamesLost, LossPercentage = lossPercentage }; _playerRepositoryMock.Expect(mock => mock.GetNemesisData(_playerId)) .Return(nemesisData); List<Nemesis> nemesisList = new List<Nemesis>(); nemesisList.Add(new Nemesis() { Id = _existingNemesisId, NemesisPlayerId = nemesisPlayerId, MinionPlayerId = _playerId, NumberOfGamesLost = gamesLost, LossPercentage = lossPercentage }); _dataContextMock.Expect(mock => mock.GetQueryable<Nemesis>()) .Return(nemesisList.AsQueryable()); _nemesisRecalculator.RecalculateNemesis(_playerId, _currentUser); _dataContextMock.AssertWasNotCalled(mock => mock.Save<Nemesis>( Arg<Nemesis>.Is.Anything, Arg<ApplicationUser>.Is.Anything)); }
public void ItSetsThePreviousNemesisIfTheCurrentOneChanges() { NemesisData nemesisData = new NemesisData() { NemesisPlayerId = -1 }; _playerRepositoryMock.Expect(mock => mock.GetNemesisData(_playerId)) .Return(nemesisData); _dataContextMock.Expect(mock => mock.GetQueryable<Nemesis>()) .Return(new List<Nemesis>().AsQueryable()); _nemesisRecalculator.RecalculateNemesis(_playerId, _currentUser); _dataContextMock.AssertWasCalled(mock => mock.Save<Player>( Arg<Player>.Matches(player => player.PreviousNemesisId == _existingNemesisId), Arg<ApplicationUser>.Is.Same(_currentUser))); }