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));
        }
Example #2
0
        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));
        }