public static MeetingValidator GetMeetingValidatorInstance() { if (meetingValidator == null) { meetingValidator = new MeetingValidator(GetUnitOfWofkInstance()); } return(meetingValidator); }
public void GetMeetingById() { //Arrange var mockUnitOfWork = new Mock <IUnitOfWork>(); //Esperamos que se llame al metodo Get del MeetingRepository con un int mockUnitOfWork.Setup(un => un.MeetingRepository.GetByID(It.IsAny <int>())); MeetingValidator meetingValidator = new MeetingValidator(mockUnitOfWork.Object); //Act Meeting returnedMeeting = meetingValidator.GetMeetingsById(5); //Assert //mockUnitOfWork.VerifyAll(); }
public void CreateMeetingTest() { //Arrange //Creo el mock object del unitOfWork var mockUnitOfWork = new Mock <IUnitOfWork>(); //Esperamos que se llame al método Insert del Repository con un Meeting y luego al Save(); mockUnitOfWork.Setup(un => un.MeetingRepository.Insert(It.IsAny <Meeting>())); mockUnitOfWork.Setup(un => un.Save()); MeetingValidator meetingValidator = new MeetingValidator(mockUnitOfWork.Object); //Act meetingValidator.PostMeeting(new Meeting()); //Assert mockUnitOfWork.VerifyAll(); }
public bool Validate(T obj) { IDictionary <Type, Delegate> typeofProcessMap = new Dictionary <Type, Delegate> { { typeof(Person), new Action <Person>(p => { Person person = (Person)(object)obj; PersonValidator personValidator = new PersonValidator(new LinqExpressionService <Person>()); personValidator.Validate(person); }) }, { typeof(Meeting), new Action <Meeting>(m => { Meeting meeting = (Meeting)(object)obj; MeetingValidator meetingValidator = new MeetingValidator(new LinqExpressionService <Meeting>()); meetingValidator.Validate(meeting); }) } }; typeofProcessMap[typeof(T)].DynamicInvoke(obj); return(true); }
private async Task <IOperationResult <Meeting> > ValidateMeeting(Meeting meeting) { var validator = new MeetingValidator(); ValidationResult validationResult = await validator.ValidateAsync(meeting); if (!validationResult.IsValid) { return(BasicOperationResult <Meeting> .Fail(validationResult.JSONFormatErrors())); } if (!await SubjectExists(meeting.SubjectId)) { return(BasicOperationResult <Meeting> .Fail("La materia inidicada en la solicitud no existe")); } if (!await TutorExistsAndIsTutor(meeting.TutorId)) { return(BasicOperationResult <Meeting> .Fail("El tutor no existe")); } if (!await StudentExistsAndIsStudent(meeting.StudentId)) { return(BasicOperationResult <Meeting> .Fail("El estudiante no existe")); } if (await CheckIfTutorAsAvailabilityForMeeting(meeting)) { return(BasicOperationResult <Meeting> .Fail("Debe de elegir un horario diferente, ya que el tutor no está disponible en el mismo")); } if (await CheckIfStudentAvailabilityForMeeting(meeting)) { return(BasicOperationResult <Meeting> .Fail("Debe de elegir otro horario, ya que el horario choca con otra tutoria")); } return(BasicOperationResult <Meeting> .Ok(meeting)); }