public void Should_Change_Entity_From_Repository()
            {
                // arrange
                var context = new TestContext();
                var entity = new TestNewUser();
                var request = new TestNewUser
                {
                    LastName = "LastName",
                    FirstName = "FirstName",
                    BirthDate = DateTime.UtcNow,
                    Email = "Email",
                    Password = "******"
                };
                context.UserRepository.Setup(_ => _.NewUser()).Returns(entity);

                // act
                context.Sut.Save(request);

                // assert
                context.UserRepository.Verify(_ => _.NewUser());
                Assert.Equal(entity.FirstName, request.FirstName);
                Assert.Equal(entity.LastName, request.LastName);
                Assert.Equal(entity.BirthDate, request.BirthDate);
                Assert.Equal(entity.Email, request.Email);
                Assert.Equal(entity.Password, request.Password);
            }
            public void Should_Raise_Exception_If_FirstName_Is_Empty()
            {
                // arrange
                var context = new TestContext();
                var user = new TestNewUser
                {
                    LastName = "LastName",
                    FirstName = null,
                    BirthDate = DateTime.UtcNow,
                    Email = "Email",
                    Password = "******"
                };

                // act
                var exception = Assert.Throws<ArrayException>(() => context.Sut.Save(user));

                // assert
                Assert.Contains(exception.Errors, (error) => error.Code == CodeError.FirstNameRequired);
            }