public void ItSavesANewGameDefinition() { var request = new CreateBoardGameGeekUserDefinitionRequest { BoardGameGeekUserId = 1, Name = "game definition name", Avatar = "avatar.png" }; autoMocker.Get <IDataContext>().Expect(mock => mock.GetQueryable <BoardGameGeekUserDefinition>()).Return(new List <BoardGameGeekUserDefinition>().AsQueryable()); autoMocker.ClassUnderTest.CreateUserDefintion(request, currentUser); var args = autoMocker.Get <IDataContext>().GetArgumentsForCallsMadeOn(mock => mock.Save( Arg <BoardGameGeekUserDefinition> .Is.Anything, Arg <ApplicationUser> .Is.Anything)); var actualUserDefinition = args[0][0] as BoardGameGeekUserDefinition; Assert.That(actualUserDefinition, Is.Not.Null); Assert.That(actualUserDefinition.Id, Is.EqualTo(request.BoardGameGeekUserId)); Assert.That(actualUserDefinition.Name, Is.EqualTo(request.Name)); Assert.That(actualUserDefinition.Avatar, Is.EqualTo(request.Avatar)); }
public BoardGameGeekUserDefinition CreateUserDefintion(CreateBoardGameGeekUserDefinitionRequest request, ApplicationUser currentUser) { ValidateRequest(request); var existingItem = _dataContext.GetQueryable <BoardGameGeekUserDefinition>() .FirstOrDefault(u => u.ApplicationUserId == currentUser.Id); if (existingItem != null) { throw new ArgumentException(EXCEPTION_MESSAGE_CURRENT_USER_ALREADY_HAVE_BGG_ACCOUNT_LINKED); } existingItem = new BoardGameGeekUserDefinition { Id = request.BoardGameGeekUserId, Name = request.Name, ApplicationUserId = currentUser.Id, Avatar = request.Avatar }; return(_dataContext.Save(existingItem, currentUser)); }