public void ItUpdatesTheExistingChampionIfOnlyTheDataHasChanged()
{
int championPlayerId = 1;
int winPercentage = 1;
ChampionData championData = new ChampionData
{
WinPercentage = winPercentage,
PlayerId = championPlayerId,
GameDefinitionId = _gameDefinitionId
};
_autoMocker.Get<IChampionRepository>().Expect(mock => mock.GetChampionData(_gameDefinitionId))
.Return(championData);
List<Champion> championList = new List<Champion>();
Champion existingChampion = new Champion
{
Id = _previousChampionId,
PlayerId = championPlayerId,
WinPercentage = winPercentage + 1,
GameDefinitionId = _gameDefinitionId,
GameDefinition = new GameDefinition()
};
championList.Add(existingChampion);
_autoMocker.Get<IDataContext>().Expect(mock => mock.GetQueryable<Champion>())
.Return(championList.AsQueryable());
_autoMocker.ClassUnderTest.RecalculateChampion(_gameDefinitionId, _applicationUser);
_autoMocker.Get<IDataContext>().AssertWasCalled(mock => mock.Save(
Arg<Champion>.Matches(champion => champion.GameDefinitionId == _gameDefinitionId
&& champion.PlayerId == championPlayerId
&& champion.WinPercentage == winPercentage),
Arg<ApplicationUser>.Is.Anything));
}