コード例 #1
0
ファイル: SmsTests.cs プロジェクト: EntityAdam/SolidTrivia
        public void Test()
        {
            Assert.Empty(game.AllPlayers());

            SmsResponseMessage response = new SmsResponseMessage();

            //successful join
            response = game.ProcessUserSmsMessage("1", $"join {session.Id}");
            Assert.True(response.Success);
            Assert.True(response.HasMessage);
            Assert.StartsWith("you have joined the game", response.Body);
            Assert.Single(game.AllPlayers());

            //failed join, already playing
            response = game.ProcessUserSmsMessage("1", $"join {session.Id}");
            Assert.False(response.Success);
            Assert.StartsWith("you are already registered for a game", response.Body);
            Assert.Single(game.AllPlayers());

            //successful join
            response = game.ProcessUserSmsMessage("2", $"JOIN {session.Id}");
            Assert.StartsWith("you have joined the game", response.Body);
            Assert.Equal(2, game.AllPlayers().Count());

            //failed leave, user is not playing, no response
            response = game.ProcessUserSmsMessage("3", $"LEAVE");
            Assert.False(response.HasMessage);
            Assert.Equal(2, game.AllPlayers().Count());

            //successful leave
            response = game.ProcessUserSmsMessage("2", $"leave");
            Assert.StartsWith("you have left the game", response.Body);
            Assert.Single(game.AllPlayers());
        }
コード例 #2
0
ファイル: SolidTrivia.cs プロジェクト: EntityAdam/SolidTrivia
        public SmsResponseMessage ProcessUserSmsMessage(string smsNumber, string body)
        {
            var response     = new SmsResponseMessage();
            var parsedResult = SmsParser.Parse(body);

            if (parsedResult.UserCommand == UserCommandType.Join)
            {
                var joinResult = Join(smsNumber, parsedResult.SessionToJoin);
                response.Success = joinResult.Item1;
                response.Body    = joinResult.Item2;
            }
            else if (parsedResult.UserCommand == UserCommandType.Leave)
            {
                var leaveResult = Leave(smsNumber);
                response.Success = leaveResult.Item1;
                response.Body    = leaveResult.Item2;
            }
            else if (parsedResult.UserCommand == UserCommandType.Response)
            {
                var session         = GetSessionIdBySms(smsNumber);
                var sessionResponse = session.AddResponse(smsNumber, parsedResult.FormattedString);
                //var sessionResponse = session.Response
                //determine if we want to send a message back to the user
            }
            return(response);
        }