Пример #1
0
        public async Task ShouldAddNewUserNotFromIdentityProvider()
        {
            _testUserService.SetUserResult(null);

            InviteNewUserAccountCommand command;

            using (var db = _dbHelper.GetDbContext())
            {
                command = new InviteNewUserAccountCommand()
                {
                    Email        = "*****@*****.**",
                    GivenName    = "asdf",
                    Surname      = "asdf",
                    SystemRoleId = db.SystemRoles.First(e => e.IsActive).Id
                };
            }

            await _handler.ExecuteAsync(command);

            using (var db = _dbHelper.GetDbContext())
            {
                var user = db.Users.Single();
                user.ShouldNotBeNull();
                user.IsActive.ShouldBeTrue();
                user.SystemRoleId.ShouldEqual(command.SystemRoleId);
                _emailSender.SentMessages.ShouldNotBeEmpty();
                _emailSender.SentMessages.Count().ShouldEqual(1);
                _emailSender.SentMessages.Any(e => e.Subject.Contains(Email.InvitationTitle)).ShouldBeTrue();
            }
        }
Пример #2
0
        public void ValidatorSystemRoleId()
        {
            var command = new InviteNewUserAccountCommand()
            {
                GivenName = "asf", Surname = "asdf", Email = "*****@*****.**", SystemRoleId = Guid.NewGuid()
            };

            var result = _validator.Validate(command);

            result.IsValid.ShouldEqual(false);
        }
Пример #3
0
        public void Validator(string givenName, string surname, string email, Guid?systemRoleId, bool isValid)
        {
            if (!systemRoleId.HasValue)
            {
                using (var db = _dbHelper.GetDbContext())
                {
                    systemRoleId = db.SystemRoles.First(e => e.IsActive).Id;
                }
            }
            var command = new InviteNewUserAccountCommand()
            {
                GivenName = givenName, Surname = surname, Email = email, SystemRoleId = systemRoleId.Value
            };

            var result = _validator.Validate(command);

            result.IsValid.ShouldEqual(isValid);
        }
Пример #4
0
        public void ValidatorUniqueEmail()
        {
            User user;

            using (var db = _dbHelper.GetDbContext())
            {
                user = new User()
                {
                    Id             = Guid.NewGuid(),
                    IsActive       = true,
                    NameIdentifier = "123",
                    UserClaims     = new List <UserClaim>()
                    {
                        new UserClaim()
                        {
                            Type = ClaimTypes.Email, Value = "A"
                        },
                        new UserClaim()
                        {
                            Type = ClaimTypes.GivenName, Value = "B"
                        },
                        new UserClaim()
                        {
                            Type = ClaimTypes.Surname, Value = "*****@*****.**"
                        }
                    },

                    SystemRoleId = db.SystemRoles.First(e => e.IsActive).Id
                };
                db.Users.Add(user);
                db.SaveChanges();
            }
            var command = new InviteNewUserAccountCommand()
            {
                Email        = user.UserClaims.Where(c => c.Type == ClaimTypes.Email).Select(c => c.Value).SingleOrDefault(),
                GivenName    = user.UserClaims.Where(c => c.Type == ClaimTypes.GivenName).Select(c => c.Value).SingleOrDefault(),
                Surname      = user.UserClaims.Where(c => c.Type == ClaimTypes.Surname).Select(c => c.Value).SingleOrDefault(),
                SystemRoleId = user.SystemRoleId
            };

            var result = _validator.Validate(command);

            result.IsValid.ShouldEqual(false);
        }
Пример #5
0
 public async Task <IActionResult> Add([FromBody] InviteNewUserAccountCommand command)
 {
     return(await _commandSender.ValidateAndSendAsync(command, ModelState));
 }