public EnumSituacaoJogo ChecarTeoria(TeoriaRequest request) { var errors = new List <EnumSituacaoJogo>(); if (SuspeitoId != request.Suspeito) { errors.Add(EnumSituacaoJogo.SuspeitoIncorreto); } if (LocalId != request.Local) { errors.Add(EnumSituacaoJogo.LocalIncorreto); } if (ArmaId != request.Arma) { errors.Add(EnumSituacaoJogo.ArmaIncorreta); } if (!errors.Any()) { return(EnumSituacaoJogo.TeoriaCorreta); } return((errors.Count == 1) ? errors.First() : errors[new Random().Next(errors.Count)]); }
public void TestRespostaErradaArmaDoJogo() { var teoriaRequest = new TeoriaRequest(arma: 2, local: 1, suspeito: 1); var jogo = CreateJogo(); Assert.AreEqual(EnumSituacaoJogo.ArmaIncorreta, jogo.ChecarTeoria(teoriaRequest)); }
public void TestRespostaErradaMaisDeUmDoJogo() { var teoriaRequest = new TeoriaRequest(arma: 2, local: 2, suspeito: 1); var jogo = CreateJogo(); Assert.AreNotEqual(EnumSituacaoJogo.SuspeitoIncorreto, jogo.ChecarTeoria(teoriaRequest)); Assert.AreNotEqual(EnumSituacaoJogo.TeoriaCorreta, jogo.ChecarTeoria(teoriaRequest)); }
public async Task <HttpResponseMessage> Check(Guid id, int suspeito, int local, int arma) { try { _serviceCrime.RemoveExpirad(); var crime = (Crime)_serviceCrime.ObterPorId(id); var requestTeoria = new TeoriaRequest(suspeito, local, arma); var responseTeoria = new TeoriaResponse(crime.ChecarTeoria(requestTeoria)); return(await ResponseAsync(responseTeoria, _serviceCrime)); } catch (Exception ex) { return(await ResponseExceptionAsync(ex)); } }