public async Task <ISaida> CadastrarPeriodo(PeriodoEntrada entrada) { // Verifica se as informações para cadastro foram informadas corretamente if (entrada.Invalido) { return(new Saida(false, entrada.Mensagens, null)); } // Verifica se já existe um período que abrange as datas informadas this.NotificarSeVerdadeiro( await _periodoRepositorio.VerificarExistenciaPorDataInicioFim(entrada.IdUsuario, entrada.DataInicio, entrada.DataFim), PeriodoMensagem.Datas_Abrangidas_Outro_Periodo); if (this.Invalido) { return(new Saida(false, this.Mensagens, null)); } var periodo = new Periodo(entrada); await _periodoRepositorio.Inserir(periodo); await _uow.Commit(); return(new Saida(true, new[] { PeriodoMensagem.Periodo_Cadastrado_Com_Sucesso }, new PeriodoSaida(periodo))); }
public void Nao_Deve_Cadastrar_Periodo_Com_Datas_Abrangidas_Por_Outro_Periodo() { var idUsuario = 1; _periodoRepositorio.VerificarExistenciaPorDataInicioFim(idUsuario, DateTime.Now.Date, DateTime.Now.Date.AddDays(5)) .Returns(true); var cadastroEntrada = new CadastrarPeriodoEntrada(idUsuario, "Período X", DateTime.Now.Date, DateTime.Now.Date.AddDays(5)); _periodoServico = Substitute.For <PeriodoServico>(_periodoRepositorio, _uow); var saida = _periodoServico.CadastrarPeriodo(cadastroEntrada).Result; Assert.IsTrue(!saida.Sucesso && saida.Mensagens.Any(x => x == PeriodoMensagem.Datas_Abrangidas_Outro_Periodo), string.Join(", ", saida.Mensagens)); }