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"); }
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)); }
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); }