コード例 #1
0
        public ActionResult Create(Book book)
        {
            if (ModelState.IsValid)
            {
                db.Books.Add(book);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(book));
        }
コード例 #2
0
        public void DeleteHistory(Guid id, string userId)
        {
            var history = context.Histories.SingleOrDefault(h => h.Id == id && h.UserId == userId);

            if (history == null)
            {
                throw new ArgumentNullException(ErrorMessagesConstants.HISTORY_NOT_FOUND);
            }

            context.Histories.Remove(history);
            context.SaveChanges();
        }
コード例 #3
0
        public void GetAvailableGames_OpponentHasACreatedGameAndStateIsWaiting_ReturnsGame()
        {
            var opponentGame = new Game()
            {
                CreationDate = DateTime.Now, Name = "game", Visibility = VisibilityType.Public, State = GameState.WaitingForASecondPlayer, CreatorUserId = user2.Id, HashedPassword = "",
            };

            context.Games.Add(opponentGame);
            context.SaveChanges();
            var gameValidator = new Mock <IGameResultValidator>();
            var gameService   = new GameService(context, gameValidator.Object);

            var games = gameService.GetAvailableGames(user.Id);

            Assert.AreEqual(1, games.Count);
            Assert.AreEqual(opponentGame.GameId, games.FirstOrDefault().Id);
            Assert.IsNotNull(games);
        }
コード例 #4
0
        public void CreateScore(Guid gameId, string userId, ScoreStatus status)
        {
            var score = new Score()
            {
                GameId = gameId,
                UserId = userId,
                Status = status
            };

            context.Scores.Add(score);
            context.SaveChanges();
        }
コード例 #5
0
        /// <inheritdoc />
        public GameStatusViewModel Create(CreateGameBindingModel input, string creatorUserId)
        {
            if (string.IsNullOrWhiteSpace(creatorUserId))
            {
                throw new ValidationException(ErrorMessagesConstants.USERID_IS_NULL);
            }

            var game = new Game()
            {
                Name           = input.Name,
                Visibility     = input.Visibility,
                HashedPassword = input.Password,
                CreatorUserId  = creatorUserId,
                State          = GameState.WaitingForASecondPlayer
            };

            context.Games.Add(game);
            context.SaveChanges();

            return(game.ToGameStatus());
        }
コード例 #6
0
        public void GetUser_WithRightId_ReturnUser()
        {
            /// assert
            var guidId = Guid.NewGuid().ToString();
            var user   = new User()
            {
                Id = guidId, FirstName = "Name", LastName = "name2", Email = "*****@*****.**", UserName = "******"
            };

            context.Users.Add(user);
            context.SaveChanges();

            /// act
            var resutUser = this.userService.GetUserDetails(guidId);

            /// assert
            Assert.IsNotNull(resutUser);
            Assert.AreEqual(1, context.Users.Count());
            Assert.AreEqual(guidId, resutUser.Id);
            Assert.AreEqual(user.FirstName, resutUser.FirstName);
            Assert.AreEqual(user.LastName, resutUser.LastName);
        }
コード例 #7
0
        public void Initialize()
        {
            this.context = MockDbContext.GetContext();
            var guidId = Guid.NewGuid().ToString();

            this.user = new User()
            {
                Id = guidId, FirstName = "test", LastName = "test", Email = "*****@*****.**", UserName = "******"
            };
            var guidId2 = Guid.NewGuid().ToString();

            this.user2 = new User()
            {
                Id = guidId2, FirstName = "test2", LastName = "test2", Email = "*****@*****.**", UserName = "******"
            };
            context.Users.Add(user);
            context.Users.Add(user2);
            context.SaveChanges();
        }
コード例 #8
0
        /// <summary>
        /// Seed sample data for tests. In real world app it would be better to use sepate data per each tests class.
        /// This approach was selected in the scope of this project due to the time concerns.
        /// </summary>
        /// <param name="context"></param>
        public static void SeedSampleData(TicTacToeDbContext context)
        {
            context.Games.AddRange(
                new Game {
                Id = 1, StartDate = new DateTime(2020, 2, 4), CrossPlayerId = "player1", NoughtPlayerId = "player2", Result = Domain.Enums.GameResult.Active, TurnNumber = 0
            },
                new Game {
                Id = 2, StartDate = new DateTime(2020, 2, 14), CrossPlayerId = "player2", NoughtPlayerId = "player1", Result = Domain.Enums.GameResult.Draw, TurnNumber = 0
            },
                new Game {
                Id = 3, StartDate = new DateTime(2020, 2, 19), CrossPlayerId = "player1", NoughtPlayerId = "player2", Result = Domain.Enums.GameResult.Win, TurnNumber = 0
            },
                new Game {
                Id = 4, StartDate = new DateTime(2020, 2, 20), CrossPlayerId = "player2", NoughtPlayerId = "player1", Result = Domain.Enums.GameResult.Loss, TurnNumber = 0
            },
                new Game {
                Id = 5, StartDate = new DateTime(2020, 2, 12), CrossPlayerId = "player1", NoughtPlayerId = "player3", Result = Domain.Enums.GameResult.Win, TurnNumber = 3
            },
                new Game {
                Id = 6, StartDate = new DateTime(2020, 2, 6), CrossPlayerId = "player2", NoughtPlayerId = "player3", Result = Domain.Enums.GameResult.Active, TurnNumber = 0
            },
                new Game {
                Id = 7, StartDate = new DateTime(2020, 2, 5), CrossPlayerId = "currentUserId", NoughtPlayerId = "player1", Result = Domain.Enums.GameResult.Active, TurnNumber = 5
            },
                new Game {
                Id = 8, StartDate = new DateTime(2020, 2, 1), CrossPlayerId = "player3", NoughtPlayerId = "player2", Result = Domain.Enums.GameResult.Active, TurnNumber = 6
            },
                new Game {
                Id = 9, StartDate = new DateTime(2020, 2, 3), CrossPlayerId = "player3", NoughtPlayerId = "player4", Result = Domain.Enums.GameResult.Active, TurnNumber = 4
            },
                new Game {
                Id = 10, StartDate = new DateTime(2020, 2, 3), CrossPlayerId = "player3", NoughtPlayerId = "player4", Result = Domain.Enums.GameResult.Active, TurnNumber = 7
            });

            context.Tiles.AddRange(
                new Tile {
                Id = 10, X = 3, Y = 3
            });

            context.CrossPlayerGameTiles.AddRange(
                new CrossPlayerGameTile {
                GameId = 1, TileId = 10
            },
                new CrossPlayerGameTile {
                GameId = 2, TileId = 10
            },
                new CrossPlayerGameTile {
                GameId = 1, TileId = 10
            },
                new CrossPlayerGameTile {
                GameId = 3, TileId = 10
            },
                new CrossPlayerGameTile {
                GameId = 9, TileId = 1
            },
                new CrossPlayerGameTile {
                GameId = 9, TileId = 2
            },
                new CrossPlayerGameTile {
                GameId = 9, TileId = 3
            },
                new CrossPlayerGameTile {
                GameId = 8, TileId = 2
            },
                new CrossPlayerGameTile {
                GameId = 8, TileId = 6
            },
                new CrossPlayerGameTile {
                GameId = 8, TileId = 4
            },
                new CrossPlayerGameTile {
                GameId = 8, TileId = 7
            },
                new CrossPlayerGameTile {
                GameId = 10, TileId = 3
            },
                new CrossPlayerGameTile {
                GameId = 10, TileId = 5
            },
                new CrossPlayerGameTile {
                GameId = 10, TileId = 9
            },
                new CrossPlayerGameTile {
                GameId = 10, TileId = 4
            });

            context.NoughtPlayerGameTiles.AddRange(
                new NoughtPlayerGameTile {
                GameId = 1, TileId = 10
            },
                new NoughtPlayerGameTile {
                GameId = 2, TileId = 10
            },
                new NoughtPlayerGameTile {
                GameId = 3, TileId = 10
            },
                new NoughtPlayerGameTile {
                GameId = 4, TileId = 10
            },
                new NoughtPlayerGameTile {
                GameId = 9, TileId = 5
            },
                new NoughtPlayerGameTile {
                GameId = 9, TileId = 8
            },
                new NoughtPlayerGameTile {
                GameId = 8, TileId = 1
            },
                new NoughtPlayerGameTile {
                GameId = 8, TileId = 5
            },
                new NoughtPlayerGameTile {
                GameId = 8, TileId = 9
            },
                new NoughtPlayerGameTile {
                GameId = 10, TileId = 8
            },
                new NoughtPlayerGameTile {
                GameId = 10, TileId = 7
            },
                new NoughtPlayerGameTile {
                GameId = 10, TileId = 6
            },
                new NoughtPlayerGameTile {
                GameId = 10, TileId = 1
            });

            context.SaveChanges();
        }