public void ToDomain_WhenCalled_ReturnsUserIdentity()
        {
            IUserIdentityCommand sut = CreateSut();

            IUserIdentity result = sut.ToDomain();

            Assert.That(result, Is.TypeOf <UserIdentity>());
        }
        public void Validate_WhenSecurityRepositoryIsNull_ThrowsArgumentNullException()
        {
            IUserIdentityCommand sut = CreateSut();

            ArgumentNullException result = Assert.Throws <ArgumentNullException>(() => sut.Validate(_validatorMockContext.ValidatorMock.Object, null));

            Assert.That(result.ParamName, Is.EqualTo("securityRepository"));
        }
        public void Validate_WhenValidatorIsNull_ThrowsArgumentNullException()
        {
            IUserIdentityCommand sut = CreateSut();

            ArgumentNullException result = Assert.Throws <ArgumentNullException>(() => sut.Validate(null, _securityRepositoryMock.Object));

            Assert.That(result.ParamName, Is.EqualTo("validator"));
        }
        public void Validate_WhenCalled_ReturnsValidator()
        {
            IUserIdentityCommand sut = CreateSut();

            IValidator result = sut.Validate(_validatorMockContext.ValidatorMock.Object, _securityRepositoryMock.Object);

            Assert.That(result, Is.EqualTo(_validatorMockContext.ValidatorMock.Object));
        }
        public void ToDomain_WhenCalled_ReturnsUserIdentityWithExternalUserIdentifierFromCommand()
        {
            string externalUserIdentifier = _fixture.Create <string>();
            IUserIdentityCommand sut      = CreateSut(externalUserIdentifier: externalUserIdentifier);

            IUserIdentity result = sut.ToDomain();

            Assert.That(result.ExternalUserIdentifier, Is.EqualTo(externalUserIdentifier));
        }
        public void ToDomain_WhenCalled_ReturnsUserIdentityWithIdentifierFromCommand()
        {
            int identifier           = _fixture.Create <int>();
            IUserIdentityCommand sut = CreateSut(identifier);

            IUserIdentity result = sut.ToDomain();

            Assert.That(result.Identifier, Is.EqualTo(identifier));
        }
        public void ToDomain_WhenCalled_ReturnsUserIdentityWithClaimsFromCommand()
        {
            IEnumerable <Claim>  claims = _fixture.CreateMany <Claim>(_random.Next(5, 10)).ToList();;
            IUserIdentityCommand sut    = CreateSut(claims: claims);

            IUserIdentity result = sut.ToDomain();

            foreach (Claim claim in claims)
            {
                Assert.That(result.ToClaimsIdentity().Claims.SingleOrDefault(m => string.CompareOrdinal(claim.ValueType, m.ValueType) == 0 && string.CompareOrdinal(claim.Value, m.Value) == 0), Is.Not.Null);
            }
        }
        public void Validate_WhenCalled_AssertShouldNotBeNullOrWhiteSpaceWasCalledOnStringValidator()
        {
            string externalUserIdentifier = _fixture.Create <string>();
            IUserIdentityCommand sut      = CreateSut(externalUserIdentifier);

            sut.Validate(_validatorMockContext.ValidatorMock.Object, _securityRepositoryMock.Object);

            _validatorMockContext.StringValidatorMock.Verify(m => m.ShouldNotBeNullOrWhiteSpace(
                                                                 It.Is <string>(value => string.CompareOrdinal(value, externalUserIdentifier) == 0),
                                                                 It.Is <Type>(type => type == sut.GetType()),
                                                                 It.Is <string>(field => string.Compare(field, "ExternalUserIdentifier", false) == 0)),
                                                             Times.Once());
        }