예제 #1
0
 public void NaoDeveCriarEstudanteComCPFInvalido(string InvalidCPF)
 {
     FluentActions.Invoking(() => StudentBuilder.New().WithCPF(InvalidCPF).Build())
     .Should()
     .Throw <DomainException>()
     .Where(d => d.ErrorMessages.Contains(Resource.InvalidCPF));
 }
예제 #2
0
        public void DeveAlterarPublicoAlvoDoEstudante()
        {
            var valorEsperado = _faker.PickRandom <TargetAudience>();
            var student       = StudentBuilder.New().Build();

            student.UpdateTargetAudience(valorEsperado);
            student.TargetAudience.Should().Be(valorEsperado);
        }
예제 #3
0
        public void DeveAlterarCPFDoEstudante()
        {
            var valorEsperado = _faker.Person.Cpf();
            var student       = StudentBuilder.New().Build();

            student.UpdateCPF(valorEsperado);
            student.CPF.Should().Be(valorEsperado);
        }
예제 #4
0
        public void DeveAlterarNomeDoEstudante()
        {
            var valorEsperado = _faker.Person.FullName;
            var student       = StudentBuilder.New().Build();

            student.UpdateName(valorEsperado);
            student.Name.Should().Be(valorEsperado);
        }
예제 #5
0
        public void DeveAlterarEmailDoEstudante()
        {
            var valorEsperado = _faker.Person.Email;
            var student       = StudentBuilder.New().Build();

            student.UpdateEmail(valorEsperado);
            student.Email.Should().Be(valorEsperado);
        }
        public void NaoDeveAdicionarCursoComOMesmoNomeEIdDiferenteDoOutroSalvo()
        {
            var studentAlreadySaved = StudentBuilder.New().WithCPF(_studentDTO.CPF).WithId(60).Build();

            _studentRepositoryMock.Setup(r => r.GetByCPF(_studentDTO.CPF)).Returns(studentAlreadySaved);
            _studentDTO.Id = _faker.Random.Int(50, 100);
            FluentActions.Invoking(() => _studentService.Save(_studentDTO)).Should().Throw <DomainException>().Where(d => d.ErrorMessages.Contains(Resource.CPFAlreadyExists));
        }
예제 #7
0
        public void DeveAlterarNome()
        {
            var novoNomeEsperado = _faker.Person.FullName;
            var aluno            = StudentBuilder.New().Build();

            aluno.ChangeName(novoNomeEsperado);

            Assert.Equal(novoNomeEsperado, aluno.Name);
        }
예제 #8
0
        public void ShouldNotCreateWithTargetAudienceIsDiferent()
        {
            var course  = CourseBuilder.New().WithTargetAudience(TargetAudience.Employee).Build();
            var student = StudentBuilder.New().WithTargetAudience(TargetAudience.Student).Build();

            Assert.Throws <DomainException>(() =>
                                            RegistrationBuilder.New().WithCourse(course).WithStudent(student).Build())
            .WithMessage(Messages.TARGET_AUDIENCE_IS_DIFERENT_STUDENT_COURSE);
        }
예제 #9
0
        public void NaoDeveAdicionarAlunoQuandoCpfJaFoiCadastrado()
        {
            var studentWithSameNif = StudentBuilder.New().WithId(34).Build();

            _studentRepository.Setup(r => r.GetByNif(_studentDto.Nif)).Returns(studentWithSameNif);

            Assert.Throws <DomainException>(() => _studentStorer.Store(_studentDto))
            .ComMensagem(Resource.AlreadyRegisteredNif);
        }
예제 #10
0
        public void NaoDevePublicoAlvoDeAlunoECursoSeremDiferentes()
        {
            var curso = CursoBuilder.Novo().ComPublicoAlvo(TargetAudience.Employee).Build();
            var aluno = StudentBuilder.New().WithTargetAudience(TargetAudience.Graduate).Build();

            Assert.Throws <DomainException>(() =>
                                            MatriculaBuilder.Novo().ComAluno(aluno).ComCurso(curso).Build())
            .ComMensagem(Resource.DifferentTargetAudience);
        }
예제 #11
0
        public void NaoDeveAlterarEstudanteComNomeInvalido(string InvalidName)
        {
            var student = StudentBuilder.New().Build();

            FluentActions.Invoking(() => student.UpdateName(InvalidName))
            .Should()
            .Throw <DomainException>()
            .Where(d => d.ErrorMessages.Contains(Resource.InvalidName));
        }
예제 #12
0
        public void ShouldChangeName()
        {
            var expectedName = _faker.Person.FullName;

            var student = StudentBuilder.New().Build();

            student.ChangeName(expectedName);

            Assert.Equal(expectedName, student.Name);
        }
예제 #13
0
        public void NaoDeveAdicionarQuandoForEdicao()
        {
            _studentDto.Id = 35;
            var alunoJaSalvo = StudentBuilder.New().Build();

            _studentRepository.Setup(r => r.GetById(_studentDto.Id)).Returns(alunoJaSalvo);

            _studentStorer.Store(_studentDto);

            _studentRepository.Verify(r => r.Add(It.IsAny <Student>()), Times.Never);
        }
예제 #14
0
        public void DeveEditarNomeDoAluno()
        {
            _studentDto.Id   = 35;
            _studentDto.Name = _faker.Person.FullName;
            var alunoJaSalvo = StudentBuilder.New().Build();

            _studentRepository.Setup(r => r.GetById(_studentDto.Id)).Returns(alunoJaSalvo);

            _studentStorer.Store(_studentDto);

            Assert.Equal(_studentDto.Name, alunoJaSalvo.Name);
        }
예제 #15
0
        public void ShouldUpdateStudent()
        {
            var studentAlreadySave = StudentBuilder.New().Build();

            _studentRepositoryMock.Setup(r => r.GetById(_studentDto.Id)).Returns(studentAlreadySave);

            _studentService.Update(_studentDto);

            Assert.Equal(_studentDto.Name, studentAlreadySave.Name);

            _studentRepositoryMock.Verify(r => r.Update(It.IsAny <Student>()));
            _studentRepositoryMock.Verify(r => r.Add(It.IsAny <Student>()), Times.Never());
        }
예제 #16
0
        public void DeveCriarMatricula()
        {
            var curso             = CursoBuilder.Novo().ComPublicoAlvo(TargetAudience.Entrepreneur).Build();
            var matriculaEsperada = new
            {
                Aluno     = StudentBuilder.New().WithTargetAudience(TargetAudience.Entrepreneur).Build(),
                Curso     = curso,
                ValorPago = curso.Amount
            };

            var matricula = new Enrollment(matriculaEsperada.Aluno, matriculaEsperada.Curso, matriculaEsperada.ValorPago);

            matriculaEsperada.ToExpectedObject().ShouldMatch(matricula);
        }
예제 #17
0
        public void ShouldAddRegistration()
        {
            var course = CourseBuilder.New().Build();

            var expectedRegistration = new
            {
                Student = StudentBuilder.New().Build(),
                Course  = course,
                course.Value
            };

            var registration = new Registration(expectedRegistration.Student, expectedRegistration.Course, expectedRegistration.Value);

            expectedRegistration.ToExpectedObject().ShouldMatch(registration);
        }
예제 #18
0
        public void NaoDeveEditarDemaisInformacoesDoAluno()
        {
            _studentDto.Id = 35;
            var alunoJaSalvo        = StudentBuilder.New().Build();
            var cpfEsperado         = alunoJaSalvo.Nif;
            var emailEsperado       = alunoJaSalvo.Email;
            var publicoAlvoEsperado = alunoJaSalvo.TargetAudience;

            _studentRepository.Setup(r => r.GetById(_studentDto.Id)).Returns(alunoJaSalvo);

            _studentStorer.Store(_studentDto);

            Assert.Equal(cpfEsperado, alunoJaSalvo.Nif);
            Assert.Equal(emailEsperado, alunoJaSalvo.Email);
            Assert.Equal(publicoAlvoEsperado, alunoJaSalvo.TargetAudience);
        }
        public RegistrationCreationTest()
        {
            _courseRepository       = new Mock <ICourseRepository>();
            _studentRepository      = new Mock <IStudentRepository>();
            _registrationRepository = new Mock <IRegistrationRepository>();
            _registrationCreation   = new RegistrationCreation(_studentRepository.Object, _courseRepository.Object, _registrationRepository.Object);

            _course = CourseBuilder.New().WithTargetAudience(TargetAudience.Student).Build();
            _courseRepository.Setup(r => r.GetById(_course.Id)).Returns(_course);

            _student = StudentBuilder.New().WithTargetAudience(TargetAudience.Student).Build();
            _studentRepository.Setup(r => r.GetById(_student.Id)).Returns(_student);

            _registrationDto = new RegistrationDto {
                StudentId = _student.Id, CourseId = _course.Id, Value = _course.Value
            };
        }
예제 #20
0
        public CriacaoDaMatriculaTest()
        {
            _cursoRepositorio     = new Mock <ICourseRepository>();
            _alunoRepositorio     = new Mock <IStudentRepository>();
            _matriculaRepositorio = new Mock <IEnrollmentRepository>();

            _aluno = StudentBuilder.New().WithId(23).WithTargetAudience(TargetAudience.Graduate).Build();
            _alunoRepositorio.Setup(r => r.GetById(_aluno.Id)).Returns(_aluno);

            _course = CursoBuilder.Novo().ComId(45).ComPublicoAlvo(TargetAudience.Graduate).Build();
            _cursoRepositorio.Setup(r => r.GetById(_course.Id)).Returns(_course);

            _enrollmentDto = new EnrollmentDto {
                StudentId = _aluno.Id, CourseId = _course.Id, PaidAmount = _course.Amount
            };

            _enrollmentCreation = new EnrollmentCreation(_alunoRepositorio.Object, _cursoRepositorio.Object, _matriculaRepositorio.Object);
        }
예제 #21
0
 public void ShouldNotHaveStudentInvalidEmail(string invalidEmail)
 {
     Assert.Throws <DomainException>(() => StudentBuilder.New().WithEmail(invalidEmail).Build());
 }
예제 #22
0
        public void ShouldNotChangeInvalidName(string invalidName)
        {
            var student = StudentBuilder.New().Build();

            Assert.Throws <DomainException>(() => student.ChangeName(invalidName)).WithMessage(Messages.INVALID_NAME);
        }
예제 #23
0
 public void NaoDeveCriarComNomeInvalido(string nomeInvalido)
 {
     Assert.Throws <DomainException>(() =>
                                     StudentBuilder.New().WithName(nomeInvalido).Build())
     .ComMensagem(Resource.InvalidName);
 }
예제 #24
0
 public void NaoDeveCriarComCpfInvalido(string cpfInvalido)
 {
     Assert.Throws <DomainException>(() =>
                                     StudentBuilder.New().WithNif(cpfInvalido).Build())
     .ComMensagem(Resource.InvalidNif);
 }
예제 #25
0
 public void NaoDeveCriarComEmailInvalido(string emailInvalido)
 {
     Assert.Throws <DomainException>(() =>
                                     StudentBuilder.New().WithEmail(emailInvalido).Build())
     .ComMensagem(Resource.InvalidEmail);
 }