public void CreatesOneUp_WhenModeSetToOneUp(Mode mode, TurnType type)
        {
            var match = MatchMockCreator.CreateSettingsWithHost(mode, type)
                        .CreateMatch();

            Assert.Equal(mode, match.Mode);
        }
        public void ThrowsHostingLimitReachedException_WhenHostingLimitReached()
        {
            var settings = MatchMockCreator.CreateSettingsWithHost();

            settings.Host.Hosting = 1;
            Assert.Equal(settings.Host.Hosting, settings.Host.HostingLimit);
            Assert.Throws <HostingLimitReachedException>(() => settings.CreateMatch());
        }
        public void Match_HasOnlyHostUserWithId_WhenCreated()
        {
            var match = MatchMockCreator.CreateSettingsWithHost()
                        .CreateMatch();

            Assert.True(match.MatchUsers.Count == 1);
            Assert.Contains(match.MatchUsers, x =>
                            x.Role == MatchRole.Host && !string.IsNullOrEmpty(x.UserId));
        }
        public void CreatesMatch_WithSelectedSurface(Surface surface)
        {
            var settings = MatchMockCreator.CreateSettingsWithHost();

            settings.Surface = surface;
            var match = settings.CreateMatch();

            Assert.Equal(surface, match.Surface);
        }
Exemplo n.º 5
0
        public void ThrowsCantJoinMatchException_WhenTryingToJoinYourOwnMatch()
        {
            var settings = MatchMockCreator.CreateSettings();

            settings.Host = _host;
            var match   = settings.CreateMatch();
            var manager = new MatchDoorman(_opponentCheckerMock.Object);

            Assert.Throws <CantJoinMatchException>(() => { manager.AddOpponent(match, _host); });
        }
Exemplo n.º 6
0
        public void ThrowsCantJoinMatchException_WhenAlreadyBattlingOpponent()
        {
            var settings = MatchMockCreator.CreateSettings();

            settings.Host = _host;
            var match   = settings.CreateMatch();
            var checker = OpponentCheckerMock.Create(_host.Id, _opponent.Id, true);
            var manager = new MatchDoorman(checker.Object);

            Assert.Throws <CantJoinMatchException>(() => { manager.AddOpponent(match, _opponent); });
        }
Exemplo n.º 7
0
        public void ThrowsCantJoinMatchException_WhenJoinLimitReached()
        {
            var settings = MatchMockCreator.CreateSettings();

            settings.Host = _host;
            var match   = settings.CreateMatch();
            var manager = new MatchDoorman(_opponentCheckerMock.Object);

            _opponent.Joined = 1;
            Assert.Throws <CantJoinMatchException>(() => { manager.AddOpponent(match, _opponent); });
        }
Exemplo n.º 8
0
        public void UserJoinCountIncremented_WhenJoinedMatch()
        {
            Assert.True(_opponent.Joined == 0);

            var settings = MatchMockCreator.CreateSettingsWithHost();
            var match    = settings.CreateMatch();
            var manager  = new MatchDoorman(_opponentCheckerMock.Object);

            manager.AddOpponent(match, _opponent);
            Assert.Equal(1, _opponent.Joined);
        }
        public void IncrementsHostingCount_ForHost_WhenMatchCreated()
        {
            var host     = UserMockCreator.CreateHost();
            var settings = MatchMockCreator.CreateSettings();

            settings.Host = host;
            Assert.Equal(0, host.Hosting);
            settings.CreateMatch();

            Assert.Equal(1, host.Hosting);
        }
Exemplo n.º 10
0
        public void UserCanJoinMatch_WithRoleOpponent()
        {
            var settings = MatchMockCreator.CreateSettings();

            settings.Host = _host;
            var match   = settings.CreateMatch();
            var manager = new MatchDoorman(_opponentCheckerMock.Object);

            manager.AddOpponent(match, _opponent);
            Assert.Contains(match.MatchUsers, x => x.UserId == _opponent.Id &&
                            x.Role == MatchRole.Opponent);
        }
Exemplo n.º 11
0
        public void InformationAsExpected_WhenModeIsCopyCat()
        {
            var settings = MatchMockCreator.CreateSettings(Mode.CopyCat);

            settings.Host = _host;
            var match   = settings.CreateMatch();
            var manager = new MatchDoorman(_opponentCheckerMock.Object);

            manager.AddOpponent(match, _opponent);

            Assert.Equal(Status.Active, match.Status);
            Assert.True(match.GetHost().CanGo);
            Assert.False(match.GetOpponent().CanGo);
            Assert.Equal(_host.DisplayName, match.Turn);
        }
Exemplo n.º 12
0
        public void InformationAsExpected_WhenModeIsThreeRoundPass_AndTurnTypeIsBlitz()
        {
            var settings = MatchMockCreator.CreateSettingsWithHost(Mode.ThreeRoundPass);

            settings.TurnType = TurnType.Blitz;
            var match   = settings.CreateMatch();
            var manager = new MatchDoorman(_opponentCheckerMock.Object);

            manager.AddOpponent(match, _opponent);

            Assert.Equal(Status.Active, match.Status);
            Assert.True(match.GetHost().CanGo);
            Assert.True(match.GetOpponent().CanGo);
            Assert.Equal("", match.Turn);
        }
Exemplo n.º 13
0
        public void ThrowsCantJoinMatchException_WhenMatchNotOpenOrInvitation()
        {
            var settings = MatchMockCreator.CreateSettingsWithHost();
            var match    = settings.CreateMatch();

            var failMatchStates = new[]
            {
                Status.Active,
                Status.Closed,
                Status.Complete,
                Status.Pending,
            };

            foreach (var status in failMatchStates)
            {
                match.Status = status;
                var doorman = new MatchDoorman(_opponentCheckerMock.Object);
                Assert.Throws <CantJoinMatchException>(() => doorman.AddOpponent(match, _opponent));
            }
        }
 public void ThrowsUserNotFoundExceptionWhen_HostIsNull()
 {
     Assert.Throws <UserNotFoundException>(() => MatchMockCreator.CreateSettings().CreateMatch());
 }