public void ItCreatesANewRecordIfOneDoesNotExist()
{
autoMocker.Get<IDataContext>().Expect(mock => mock.FindById<BoardGameGeekGameDefinition>(boardGameGeekGameDefinitionId))
.Throw(new EntityDoesNotExistException(typeof(BoardGameGeekGameDefinition), boardGameGeekGameDefinitionId));
var expectedGameDetails = new GameDetails
{
Thumbnail = "some thumbnail",
Name = "some name",
Categories = new List<GameCategory>()
};
autoMocker.Get<IBoardGameGeekApiClient>().Expect(mock => mock.GetGameDetails(boardGameGeekGameDefinitionId))
.Return(expectedGameDetails);
autoMocker.ClassUnderTest.CreateBoardGameGeekGameDefinition(boardGameGeekGameDefinitionId, currentUser);
var args = autoMocker.Get<IDataContext>().GetArgumentsForCallsMadeOn(mock => mock.Save(
Arg<BoardGameGeekGameDefinition>.Is.Anything,
Arg<ApplicationUser>.Is.Anything));
Assert.That(args.Count, Is.GreaterThan(0));
var actualBoardGameGeekGameDefinition = args[0][0] as BoardGameGeekGameDefinition;
Assert.That(actualBoardGameGeekGameDefinition, Is.Not.Null);
Assert.That(actualBoardGameGeekGameDefinition.Id, Is.EqualTo(boardGameGeekGameDefinitionId));
Assert.That(actualBoardGameGeekGameDefinition.Thumbnail, Is.EqualTo(expectedGameDetails.Thumbnail));
Assert.That(actualBoardGameGeekGameDefinition.Name, Is.EqualTo(expectedGameDetails.Name));
}
}