public void CreateRoomTest()
        {
            //Arrange

            CreateNewRoomRequest request = new CreateNewRoomRequest()
            {
                Level       = _level,
                UserName    = _user.UserName,
                SecurityKey = _securityKey
            };

            var exStatus = HttpStatusCode.OK;
            var exResult = new CreateNewRoomResult()
            {
                ErrorMessage = "",
                Success      = true,
                Room         = 0,
                Player       = 0
            };

            //Act
            var act = _ctrl.CreateNewRoom(request);
            CreateNewRoomResult actContent;
            var hasContent = act.TryGetContentValue(out actContent);

            //Assert
            Assert.AreEqual(exStatus, act.StatusCode, "status code");
            Assert.IsTrue(hasContent, "has content");
            Assert.AreEqual(exResult.ErrorMessage, actContent.ErrorMessage, "error message");
            Assert.AreEqual(exResult.Success, actContent.Success, "success bool");
            Assert.AreNotEqual(default(int?), actContent.Room, "room not default");
            Assert.AreNotEqual(default(int?), actContent.Player, "player not default");
            Assert.IsNotNull(actContent.Room, "room not null");
            Assert.IsNotNull(actContent.Player, "player not null");
        }
Пример #2
0
        public HttpResponseMessage CreateNewRoom(CreateNewRoomRequest request)
        {
            var result = new CreateNewRoomResult();

            try
            {
                result = service.CreateNewRoom(request);
            }
            catch (Exception e)
            {
                result.ErrorMessage = e.Message;
                result.Success      = false;
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, result));
            }
            return(Request.CreateResponse(HttpStatusCode.OK, result));
        }
Пример #3
0
        public int CreateARoom(int level, string userName, int securityKey, out int?player)
        {
            CreateNewRoomResult result = roomService.CreateNewRoom(new CreateNewRoomRequest()
            {
                Level = level, UserName = userName, SecurityKey = securityKey
            });

            if (!result.Success.HasValue || !result.Success.Value)
            {
                string error = result.ErrorMessage;
                player = 0;
                return(0);
            }
            player = result.Player;
            return(result.Room);
        }
Пример #4
0
        public CreateNewRoomResult CreateNewRoom(CreateNewRoomRequest request)
        {
            var result = new CreateNewRoomResult();

            try
            {
                var user = _cache.RefreshAndGet(
                    Users,
                    request.UserName,
                    new UserNotFoundException("User was not found, can't create room")
                    );
                UserManager.SecurityCheck(request.SecurityKey, user);

                Player        creator            = null;
                Room          room               = null;
                NoLimitHoldem noLimitPreferences = new NoLimitHoldem(request.Name, request.BuyInCost, request.MinimumBet, request.Antes,
                                                                     request.MinNumberOfPlayers, request.MaxNumberOfPlayers, request.IsSpactatorsAllowed);
                if (request.Limit == 0)
                {
                    room = user.CreateNewRoom(request.Level, noLimitPreferences, out creator);
                }
                else if (request.Limit == -1)
                {
                    PotLimitHoldem potPreferences = new PotLimitHoldem(noLimitPreferences);
                    room = user.CreateNewRoom(request.Level, potPreferences, out creator);
                }
                else if (request.Limit > 0)
                {
                    LimitHoldem limitPreferences = new LimitHoldem(noLimitPreferences, request.Limit);
                    room = user.CreateNewRoom(request.Level, limitPreferences, out creator);
                }

                if (creator == null || room == null)
                {
                    throw new WrongIOException("Limit field in the request is not valid");
                }
                Rooms.Add(room.GetHashCode(), room);
                Players.Add(creator.GetHashCode(), creator);
                result.Player = creator.GetHashCode();
                result.Room   = room.GetHashCode();

                //Request's info
                result.Name                = request.Name;
                result.BuyInCost           = request.BuyInCost;
                result.MinimumBet          = request.MinimumBet;
                result.Antes               = request.Antes;
                result.MinNumberOfPlayers  = request.MinNumberOfPlayers;
                result.MaxNumberOfPlayers  = request.MaxNumberOfPlayers;
                result.IsSpactatorsAllowed = request.IsSpactatorsAllowed;
                result.Limit               = request.Limit;

                result.Success = true;
            }
            catch (PokerException e)
            {
                result.Success      = false;
                result.ErrorMessage = e.Message;
                Logger.Error(e, this);
            }

            return(result);
        }