コード例 #1
0
        public void CanCreateAGameThatIsPrivate()
        {
            var date = DateTime.Now;
            SetupMockSportLocationAndGameRepos();
            _mockGameRepo = new Mock<ITeamGameRepository>();
            _teamTeamGame = new TeamGame(date, _sport, _location) { IsPrivate = true };
            var nonPrivateGame = new TeamGame(date, _sport, _location);
            _mockGameFactory = new Mock<IGameFactory>();
            _mockGameFactory.Setup(x => x.CreateGameWithTeams(It.IsAny<DateTime>(), It.IsAny<Sport>(), It.IsAny<Location>(), true)).Returns(
                _teamTeamGame);
            _mockGameFactory.Setup(x => x.CreateGameWithTeams(It.IsAny<DateTime>(), It.IsAny<Sport>(), It.IsAny<Location>(), false)).Returns(
                nonPrivateGame);
            _mockGameRepo.Setup(x => x.SaveTeamGame(It.IsAny<TeamGame>())).Verifiable();

            const string location = LocationName;

            var request = new CreateTeamGameRequest
            {
                DateTime = date.ToLongDateString(),
                Location = location,
                MaxPlayers = 5,
                MinPlayers = 3,
                Sport = SoccerName,
                IsPrivate = true
            };

            var handler = CreateHandler();

            var response = handler.Handle(request);

            _mockGameRepo.Verify(x => x.SaveTeamGame(_teamTeamGame), Times.AtLeastOnce());

            Assert.That(response.Status, Is.EqualTo(ResponseCodes.Success));
        }
コード例 #2
0
        public void CanSearchForGamesViaLocationAndSportType()
        {
            var soccer = TestData.CreateSoccerGame();
            var basketball = TestData.CreateBasketballGame();
            var location1 = TestData.CreateLocationBend();
            var location2 = TestData.CreateLocationHamsterville();

            var soccerGame1 = new TeamGame(DateTime.Now, soccer, location1);
            var soccerGame2 = new TeamGame(DateTime.Now, soccer, location2);
            var basketballGame = new TeamGame(DateTime.Now, basketball, location1);

            var listOfGames = new List<TeamGame> { soccerGame1, soccerGame2, basketballGame };

            var request = new SearchForTeamGameRequest() { Location = location1.Name, Sport = soccer.Name };

            _gameRepository = new Mock<ITeamGameRepository>();
            _gameRepository.Setup(x => x.FindTeamGameByLocation(It.Is<string>(d => d == location1.Name)))
                .Returns(listOfGames.Where(x => x.Location == location1.Name).ToList());

            var handler = new SearchForTeamGameRequestHandle(_gameRepository.Object);

            var response = handler.Handle(request);

            Assert.That(response.GamesFound.Count, Is.EqualTo(1));
            Assert.That(response.GamesFound[0].Location, Is.EqualTo(location1.Name));
            Assert.That(response.GamesFound[0].Sport, Is.EqualTo(soccer.Name));
        }
コード例 #3
0
        public void CanSaveAndGetGamesWithTeams()
        {
            _data.CreateAccount1();
            var profile = _data.CreateProfileForAccount1();
            _data.CreateLocationBend();
            _data.CreateSoccerSport();
            var team = _data.CreateTeam1();

            var game = new TeamGame(DateTime.Now, new Sport(), new Location());
            game.MaxPlayers = 5;
            game.MinPlayers = 3;
            game.IsPrivate = true;
            game.Sport = "Soccer";
            game.Location = "Bend";
            game.AddTeam(team.Id);
            game.Creator = profile.ProfileName;

            _repo.SaveTeamGame(game);

            var retrievedGame = _repo.GetTeamGameById(game.Id);

            Assert.That(game.Id, Is.EqualTo(retrievedGame.Id));
            Assert.That(retrievedGame.Location, Is.EqualTo(game.Location));
            Assert.That(retrievedGame.Sport, Is.EqualTo(game.Sport));
            Assert.That(retrievedGame.IsPrivate, Is.EqualTo(game.IsPrivate));
            Assert.That(retrievedGame.MinPlayers, Is.EqualTo(game.MinPlayers));
            Assert.That(retrievedGame.MaxPlayers, Is.EqualTo(game.MaxPlayers));
            Assert.That(retrievedGame.DateTime, Is.InRange(game.DateTime.AddSeconds(-1), game.DateTime.AddSeconds(1)));
            Assert.That(retrievedGame.TeamsIds[0], Is.EqualTo(team.Id));
            Assert.That(retrievedGame.Creator, Is.EqualTo(game.Creator));
        }
コード例 #4
0
        public void CanCheckIfGameIsFull()
        {
            var game = new TeamGame(DateTime.Now, new Sport(), new Location());
            game.TeamsIds.Add("123");
            game.TeamsIds.Add("123");

            Assert.True(game.IsFull());
        }
コード例 #5
0
        public void CanOnlyDeleteIfOwnerOfGame()
        {
            var teamGame = new TeamGame(DateTime.Now, new Sport(), new Location()) { Creator = "MooCreator" };

            var teamGameRepo = new Mock<ITeamGameRepository>();
            teamGameRepo.Setup(x => x.GetTeamGameById(teamGame.Id)).Returns(teamGame);

            var request = new DeleteTeamGameRequest
            {
                GameId = teamGame.Id,
                ProfileId = "CowCreator"
            };

            var handler = new DeleteTeamGameRequestHandle(teamGameRepo.Object);

            var response = handler.Handle(request);

            Assert.That(response.Status, Is.EqualTo(ResponseCodes.NotCreator));
            teamGameRepo.Verify(x => x.DeleteGame(teamGame.Id), Times.Never());
        }
コード例 #6
0
        public void CanGetGamesForProfile()
        {
            var profileId = "1234";
            var pickUpGame = new PickUpGame(DateTime.Now, new Sport(), new Location());
            var gameWithTeams = new TeamGame(DateTime.Now, new Sport(), new Location());
            var gameRepo = new Mock<IPickUpGameRepository>();
            var teamRepo = new Mock<ITeamGameRepository>();
            gameRepo.Setup(x => x.GetPickupGamesForProfile(profileId)).Returns(new List<PickUpGame> { pickUpGame });
            teamRepo.Setup(x => x.GetTeamGamesForProfile(profileId)).Returns(new List<TeamGame> { gameWithTeams });

            var request = new GetGamesForProfileRequest
                              {
                                  ProfileId = profileId
                              };

            var handler = new GetGamesForProfileRequestHandle(gameRepo.Object, teamRepo.Object);

            var response = handler.Handle(request);

            //Assert.That(response.TeamGames[0], Is.SameAs(gameWithTeams));
            Assert.That(response.PickupGames[0], Is.SameAs(pickUpGame));
        }
コード例 #7
0
        public void IfNoSportWasSpecifiedItDoesNotFilter()
        {
            var soccer = TestData.CreateSoccerGame();
            var location1 = TestData.CreateLocationBend();

            var soccerGame1 = new TeamGame(DateTime.Now, soccer, location1);
            var listOfGames = new List<TeamGame> { soccerGame1 };

            var request = new SearchForTeamGameRequest { Location = location1.Name, Sport = string.Empty };

            _gameRepository = new Mock<ITeamGameRepository>();
            _gameRepository.Setup(x => x.FindTeamGameByLocation(It.Is<string>(d => d == location1.Name)))
                .Returns(listOfGames.Where(x => x.Location == location1.Name).ToList());

            var handler = new SearchForTeamGameRequestHandle(_gameRepository.Object);

            var response = handler.Handle(request);

            Assert.That(response.GamesFound.Count, Is.EqualTo(1));
            Assert.That(response.GamesFound[0].Location, Is.EqualTo(location1.Name));
            Assert.That(response.GamesFound[0].Sport, Is.EqualTo(soccer.Name));
        }
コード例 #8
0
        public void CanCreateAGameWithNoTeams()
        {
            SetupMockSportLocationAndGameRepos();
            var request = new CreateTeamGameRequest()
            {
                DateTime = "03/03/03 12:00",
                Location = LocationName,
                MaxPlayers = 5,
                MinPlayers = 3,
                Sport = SoccerName
            };
            var gameWithoutTeams = new TeamGame(DateTime.Parse(request.DateTime), _sport, _location);
            _mockGameFactory.Setup(
                x => x.CreateGameWithTeams(It.Is<DateTime>(d => d == DateTime.Parse(request.DateTime))
                    , It.Is<Sport>(d => d == _sport), It.Is<Location>(d => d == _location), It.IsAny<bool>())).Returns(
                    gameWithoutTeams);
            _mockGameRepo.Setup(x => x.SaveTeamGame(It.Is<TeamGame>(d => d == gameWithoutTeams)));

            var handler = CreateHandler();

            var response = handler.Handle(request);

            Assert.That(response.Status, Is.EqualTo(ResponseCodes.Success));
        }
コード例 #9
0
 public void SetUp()
 {
     _teamGame = new TeamGame(DateTime.Now, new Sport(), new Location());
 }
コード例 #10
0
 private void CreateMockRepositoriesThatReturn(TeamGame teamGame)
 {
     _gameRepository = new Mock<ITeamGameRepository>();
     _gameRepository.Setup(x => x.GetTeamGameById(teamGame.Id)).Returns(teamGame);
 }
コード例 #11
0
 private void AssertGameWithTeamsWasCreatedAndDataLinesUp(TeamGame teamGame)
 {
     Assert.NotNull(teamGame);
     Assert.That(teamGame.Sport, Is.EqualTo("Soccer"));
     Assert.That(teamGame.Location, Is.EqualTo(_location.Name));
 }
コード例 #12
0
 public void SetUp()
 {
     _sport = new Sport { Name = SoccerName };
     _location = new Location { Name = LocationName };
     _teamTeamGame = new TeamGame(DateTime.Now, _sport, _location);
     _mockGameRepo = new Mock<ITeamGameRepository>();
 }
コード例 #13
0
        public TeamGame CreateGameWithTeams1And2()
        {
            var game = new TeamGame(DateTime.Now, new Sport(), new Location());
            game.MaxPlayers = 5;
            game.MinPlayers = 3;
            game.IsPrivate = true;
            game.Sport = SoccerName;
            game.Location = LocationBendName;
            game.AddTeam(TeamId1);
            game.AddTeam(TeamId2);
            game.Creator = Profile2Id;

            new TeamGameRepository().SaveTeamGame(game);
            GameWithTeamsId = game.Id;
            return game;
        }
コード例 #14
0
 public void SaveTeamGame(TeamGame teamGame)
 {
     throw new NotImplementedException();
 }