Beispiel #1
0
        public void OnCollision(string senderId, CollisionPayload payload)
        {
            if (!players.ContainsKey(payload.AlphaId))
            {
                return;
            }
            if (!players.ContainsKey(payload.BravoId))
            {
                return;
            }

            var alphaPlayer = players[payload.AlphaId];
            var bravoPlayer = players[payload.BravoId];

            if (alphaPlayer.Score == bravoPlayer.Score)
            {
                return;
            }

            var loser = alphaPlayer.Score < bravoPlayer.Score ? alphaPlayer : bravoPlayer;

            lock (players)
            {
                players.Remove(loser.Uid);
            }

            var deletePlayerRpc  = new DeletePlayer(new DeletePlayerPayload(loser.Uid));
            var deletePlayerJson = JsonConvert.SerializeObject(deletePlayerRpc);

            broadcast(deletePlayerJson);
        }
Beispiel #2
0
        public void Should_throw_exception_if_player_not_found()
        {
            var cmd = new DeletePlayer {
                PlayerId = 23
            };

            Assert.That(() => Repository.Execute(cmd),
                        Throws.TypeOf <DomainException>().With.Message.EqualTo("Player with ID 23 was not found"));
        }
Beispiel #3
0
        public void Ctor_ShouldReturnInstanceOfClass_WhenDependenciesAreValid()
        {
            Mock <ILogger <DeletePlayer> > mockLogger = new Mock <ILogger <DeletePlayer> >();
            Mock <ISkillRequestValidator>  mockSkillRequestValidator = new Mock <ISkillRequestValidator>();

            DeletePlayer sut = new DeletePlayer(mockLogger.Object, mockSkillRequestValidator.Object);

            Assert.IsType <DeletePlayer>(sut);
        }
Beispiel #4
0
        public void Handle_ShouldReturnSkillResponse_WhenCalled()
        {
            Mock <ILogger <DeletePlayer> > mockLogger = new Mock <ILogger <DeletePlayer> >();

            Mock <ISkillRequestValidator> mockSkillRequestValidator = new Mock <ISkillRequestValidator>();

            mockSkillRequestValidator.Setup(x => x.IsValid(It.IsAny <SkillRequest>())).Returns(true);

            DeletePlayer sut = new DeletePlayer(mockLogger.Object, mockSkillRequestValidator.Object);

            Assert.IsType <DeletePlayer>(sut);
        }
        /// <summary>
        /// Apaga jogador da base de dados
        /// </summary>
        /// <param name="id">Código para apagar jogador</param>
        /// <param name="dp">Dados do jogador a ser apagado</param>
        /// <returns> Mensagem com OK ou descrição do erro </returns>
        // DELETE: api/UpdScores/5
        public HttpResponseMessage Delete(int id, [FromBody] DeletePlayer dp)
        {
            string DBResponse = "OI";

            if (id != 42) //Just an easy check, if you don't know why 42, I do not want to work with you :-)
            {
                DBResponse = "DELETE inválido.";
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, DBResponse));
            }
            if (dp == null)
            {
                DBResponse = "Formato de dados inválido. Verifique a documentação.";
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, DBResponse));
            }
            if ((dp.CallerID == null) || (dp.CallerPW == null) || (dp.Nickname == null) || (dp.Password == null) || (dp.DeleteID == null) || (dp.DeletePW == null))
            {
                DBResponse = "Estão faltando dados. Verifique a documentação.";
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, DBResponse));
            }
            if ((dp.Nickname.Length == 0) || (dp.Password.Length == 0))
            {
                DBResponse = "Dados inválidos, Nick e senha não podem estar vazios";
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, DBResponse));
            }
            //Para o delete tem um ID/Senha adicional
            //Inicialmente as variáveis de ambiente estão setadas para JMF, JMF, DJMF e DJMF
            string CallerPW = Environment.GetEnvironmentVariable("CPW");
            string CallerID = Environment.GetEnvironmentVariable("CID");
            string DeletePW = Environment.GetEnvironmentVariable("DPW");
            string DeleteID = Environment.GetEnvironmentVariable("DID");

            if ((!dp.CallerID.Equals(CallerID)) || (!dp.CallerPW.Equals(CallerPW)) || (!dp.DeleteID.Equals(DeleteID)) || (!dp.DeletePW.Equals(DeletePW)))
            {
                DBResponse = "Credenciais inválidas, você não pode apagar o jogador";
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, DBResponse));
            }
            DBResponse = Database.UpdateDB.DeletePlayer(dp.Nickname, dp.Password);
            if (DBResponse.Equals("OK"))
            {
                dp.CallerID = "";
                dp.CallerPW = "";
                dp.Password = "";
                dp.DeleteID = "";
                dp.DeletePW = "";
                HttpResponseMessage response = Request.CreateResponse <DeletePlayer>(HttpStatusCode.Created, dp);
                string uri = Url.Link("DefaultApi", new { id = dp.Nickname });
                response.Headers.Location = new Uri(uri);
                return(response);
            }
            return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, DBResponse));
        }
Beispiel #6
0
        public void Handle_ShouldThrowArgumentNullException_WhenTokenUserIsNull()
        {
            Mock <ILogger <DeletePlayer> > mockLogger = new Mock <ILogger <DeletePlayer> >();

            Mock <ISkillRequestValidator> mockSkillRequestValidator = new Mock <ISkillRequestValidator>();

            mockSkillRequestValidator.Setup(x => x.IsValid(It.IsAny <SkillRequest>())).Returns(true);

            DeletePlayer sut = new DeletePlayer(mockLogger.Object, mockSkillRequestValidator.Object);

            SkillRequest skillRequest = new SkillRequest();

            Assert.Throws <ArgumentNullException>(() => sut.Handle(skillRequest, null));
        }
Beispiel #7
0
        public async Task DeletePlayerShouldDeleteDbEntity()
        {
            var command = new DeletePlayer()
            {
                Id = _testDbFixture.MockedDataInstance.PlayerInternalIdForDelete
            };

            var creationTask = await _rabbitMqFixture.SubscribeAndGetAsync <PlayerDeleted>(
                _testDbFixture.CheckIfPlayerExists,
                _testDbFixture.MockedDataInstance.PlayerInternalIdForDelete);

            await _rabbitMqFixture.PublishAsync(command);

            bool result = await creationTask.Task;

            result.Should().BeFalse();
        }
Beispiel #8
0
        public void Handle_ShouldReturnSkillResponse_WhenCalledWithValidInputs()
        {
            Mock <ILogger <DeletePlayer> > mockLogger = new Mock <ILogger <DeletePlayer> >();

            Mock <ISkillRequestValidator> mockSkillRequestValidator = new Mock <ISkillRequestValidator>();

            mockSkillRequestValidator.Setup(x => x.IsValid(It.IsAny <SkillRequest>())).Returns(true);

            DeletePlayer sut = new DeletePlayer(mockLogger.Object, mockSkillRequestValidator.Object);

            SkillRequest skillRequest = GenerateValidSkillRequest(new IntentRequest()
            {
                RequestId = "TestRequestId",
                Locale    = "en-US",
                Type      = "IntentRequest",
                Intent    = new Intent()
                {
                    ConfirmationStatus = "CONFIRMED",
                    Name  = "DeletePlayer",
                    Slots = new Dictionary <string, Slot>()
                    {
                        {
                            "player",
                            new Slot()
                            {
                                Name  = "player",
                                Value = "blue",
                                ConfirmationStatus = "NONE"
                            }
                        }
                    }
                }
            });

            TokenUser tokenUser = new TokenUser()
            {
                Players = new List <Player>()
            };

            SkillResponse skillResponse = sut.Handle(skillRequest, tokenUser);

            Assert.IsType <SkillResponse>(skillResponse);
        }
Beispiel #9
0
        public void Handle_ShouldThrowArgumentNullException_WhenCalledWithInvalidSkillRequest()
        {
            Mock <ILogger <DeletePlayer> > mockLogger = new Mock <ILogger <DeletePlayer> >();

            Mock <ISkillRequestValidator> mockSkillRequestValidator = new Mock <ISkillRequestValidator>();

            mockSkillRequestValidator.Setup(x => x.IsValid(It.IsAny <SkillRequest>())).Returns(false);

            DeletePlayer sut = new DeletePlayer(mockLogger.Object, mockSkillRequestValidator.Object);

            TokenUser tokenUser = new TokenUser()
            {
                Players = new List <Player>()
            };

            SkillRequest skillRequest = new SkillRequest();

            Assert.Throws <ArgumentNullException>(() => sut.Handle(skillRequest, tokenUser));
        }
Beispiel #10
0
 public async Task <IActionResult> Delete([FromBody] DeletePlayer command)
 {
     return(await SendAsync(command));
 }