Beispiel #1
0
 public static MeetingValidator GetMeetingValidatorInstance()
 {
     if (meetingValidator == null)
     {
         meetingValidator = new MeetingValidator(GetUnitOfWofkInstance());
     }
     return(meetingValidator);
 }
Beispiel #2
0
        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();
        }
Beispiel #3
0
        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));
        }