public Atendimento( IAtendimentoRepo atendimentoRepo, ITimeProvider timeProvider, PeriodoFechado horario, Paciente paciente, string observacao ) { observacao = observacao?.Trim(); Assegure.Que(atendimentoRepo != null, () => $"{nameof(atendimentoRepo)} é null"); Assegure.Que(timeProvider != null, () => $"{nameof(timeProvider)} é null"); Assegure.Que(horario != null, () => $"{nameof(horario)} é null"); Assegure.Que(paciente != null, "Informe o Paciente"); Assegure.Que((observacao?.Length ?? 0) <= 500, () => "Observação deve ter no máximo 500 caracteres"); Assegure.Que(horario.DataInicial >= timeProvider.Now, () => "Informe um Horário com data maior ou igual a de agora"); var atendimentos = atendimentoRepo.ExisteColisaoComOHorario(horario); Assegure.Que(atendimentos.Count == 0, () => $"Já existe Atendimento marcado para o Horário informado"); Horario = horario; Paciente = paciente; Observacao = observacao; Status = TipoStatus.MARC; DataCadastro = timeProvider.Now; }
public AtendimentoFacts() { // hoje é: hoje = DateTime.Parse("2018-05-01 07:00"); timeProvider = Substitute.For <ITimeProvider>(); timeProvider.Now.Returns(hoje); // e vou agenda um horário em: horario = new PeriodoFechado(DateTime.Parse("2018-06-01 09:00"), DateTime.Parse("2018-06-01 09:30")); atendimentoRepo = Substitute.For <IAtendimentoRepo>(); //Por padrão o atendimento não conflita com nenhum outro var atendimentoExistente = new List <Atendimento>(); atendimentoRepo.ExisteColisaoComOHorario(null).ReturnsForAnyArgs(atendimentoExistente);//NAO paciente = Substitute.For <Paciente>(); observacao = "uma observação"; }