public async Task UpdateClientSecretIdentity_WhenCalledWithoutModelAndIdentifierIsKnown_ReturnsViewResultWhereModelIsClientSecretIdentityViewModel()
        {
            IList <Claim>         claimCollection = _fixture.CreateMany <Claim>(_random.Next(5, 10)).ToList();
            IList <Claim>         clientSecretIdentityClaimCollection = claimCollection.Take(2).ToList();
            IClientSecretIdentity clientSecretIdentity = _fixture.BuildClientSecretIdentityMock(claims: clientSecretIdentityClaimCollection).Object;
            Controller            sut = CreateSut(claimCollection, clientSecretIdentity: clientSecretIdentity);

            ViewResult result = (ViewResult)await sut.UpdateClientSecretIdentity(_fixture.Create <int>());

            Assert.That(result.Model, Is.TypeOf <ClientSecretIdentityViewModel>());

            ClientSecretIdentityViewModel clientSecretIdentityViewModel = (ClientSecretIdentityViewModel)result.Model;

            Assert.That(clientSecretIdentityViewModel, Is.Not.Null);
            Assert.That(clientSecretIdentityViewModel.Identifier, Is.EqualTo(clientSecretIdentity.Identifier));
            Assert.That(clientSecretIdentityViewModel.FriendlyName, Is.EqualTo(clientSecretIdentity.FriendlyName));
            Assert.That(clientSecretIdentityViewModel.ClientId, Is.EqualTo(clientSecretIdentity.ClientId));
            Assert.That(clientSecretIdentityViewModel.ClientSecret, Is.EqualTo(clientSecretIdentity.ClientSecret.Substring(0, Math.Min(4, clientSecretIdentity.ClientSecret.Length)) + new string('*', clientSecretIdentity.ClientSecret.Length - Math.Min(4, clientSecretIdentity.ClientSecret.Length))));
            Assert.That(clientSecretIdentityViewModel.EditMode, Is.EqualTo(EditMode.Edit));

            Assert.That(clientSecretIdentityViewModel.Claims, Is.Not.Null);
            Assert.That(clientSecretIdentityViewModel.Claims, Is.Not.Empty);
            Assert.That(clientSecretIdentityViewModel.Claims.Count(), Is.EqualTo(claimCollection.Count));
            foreach (Claim claim in claimCollection)
            {
                Assert.That(clientSecretIdentityViewModel.Claims.SingleOrDefault(m => string.CompareOrdinal(m.ClaimType, claim.Type) == 0), Is.Not.Null);
            }
            Assert.That(clientSecretIdentityViewModel.Claims.Count(m => m.IsSelected), Is.EqualTo(clientSecretIdentityClaimCollection.Count));
            foreach (Claim claim in clientSecretIdentityClaimCollection)
            {
                Assert.That(clientSecretIdentityViewModel.Claims.SingleOrDefault(m => m.IsSelected && string.CompareOrdinal(m.ClaimType, claim.Type) == 0 && string.Compare(m.ActualValue, claim.Value) == 0), Is.Not.Null);
            }
        }
Exemplo n.º 2
0
        private QueryHandler CreateSut(IClientSecretIdentity clientSecretIdentity = null)
        {
            _securityRepositoryMock.Setup(m => m.GetClientSecretIdentityAsync(It.IsAny <int>()))
            .Returns(Task.Run(() => clientSecretIdentity ?? _fixture.Create <IClientSecretIdentity>()));

            return(new QueryHandler(_validatorMock.Object, _securityRepositoryMock.Object));
        }
        public void Build_WhereWithIdentifierHasNotBeenCalled_AssertDefaultIdentifier()
        {
            IClientSecretIdentityBuilder sut = CreateSut();

            IClientSecretIdentity result = sut.Build();

            Assert.That(result.Identifier, Is.EqualTo(default(int)));
        }
Exemplo n.º 4
0
        public void ToDomain_WhenCalledWithoutClientIdAndClientSecret_ReturnsClientSecretIdentity()
        {
            IClientSecretIdentityCommand sut = CreateSut();

            IClientSecretIdentity result = sut.ToDomain();

            Assert.That(result, Is.TypeOf <ClientSecretIdentity>());
        }
Exemplo n.º 5
0
        public void ToClaimsIdentity_WhenCalled_ReturnsClaimsIdentity()
        {
            IClientSecretIdentity sut = CreateSut();

            ClaimsIdentity result = sut.ToClaimsIdentity();

            Assert.That(result, Is.EqualTo(sut));
        }
        protected override async Task ManageRepositoryAsync(ICreateClientSecretIdentityCommand command)
        {
            NullGuard.NotNull(command, nameof(command));

            IClientSecretIdentity clientSecretIdentity = command.ToDomain();

            await SecurityRepository.CreateClientSecretIdentityAsync(clientSecretIdentity);
        }
Exemplo n.º 7
0
        private Mock <ICreateClientSecretIdentityCommand> CreateCommandMock(IClientSecretIdentity clientSecretIdentity = null)
        {
            Mock <ICreateClientSecretIdentityCommand> commandMock = new Mock <ICreateClientSecretIdentityCommand>();

            commandMock.Setup(m => m.ToDomain())
            .Returns(clientSecretIdentity ?? _fixture.BuildClientSecretIdentityMock().Object);
            return(commandMock);
        }
        public void Build_WhereWithClientSecretHasNotBeenCalled_AssertDefaultClientSecret()
        {
            IClientSecretIdentityBuilder sut = CreateSut();

            IClientSecretIdentity result = sut.Build();

            Assert.That(result.ClientSecret.Length, Is.EqualTo(32));
        }
        public void ClearSensitiveData_WhenCalled_AssertClientSecretIsNull()
        {
            IClientSecretIdentity sut = CreateSut();

            sut.ClearSensitiveData();

            Assert.That(sut.ClientSecret, Is.Null);
        }
        public void Build_WhereAddClaimsHasNotBeenCalled_AssertDefaultClaims()
        {
            IClientSecretIdentityBuilder sut = CreateSut();

            IClientSecretIdentity result = sut.Build();

            Assert.That(result.ToClaimsIdentity().Claims.Count(), Is.EqualTo(4));
        }
Exemplo n.º 11
0
        public void AddToken_WhenTokenIsNull_ThrowsArgumentNullException()
        {
            IClientSecretIdentity sut = CreateSut();

            ArgumentNullException result = Assert.Throws <ArgumentNullException>(() => sut.AddToken(null));

            Assert.That(result.ParamName, Is.EqualTo("token"));
        }
        public void Build_WhenCalled_AssertCorrectFriendlyName()
        {
            string friendlyName = Fixture.Create <string>();
            IClientSecretIdentityBuilder sut = CreateSut(friendlyName);

            IClientSecretIdentity result = sut.Build();

            Assert.That(result.FriendlyName, Is.EqualTo(friendlyName));
        }
        public async Task GetClientSecretIdentityAsync_WhenCalledWithClientId_ReturnsClientSecretIdentity()
        {
            ISecurityRepository sut = CreateSut();

            IList <IClientSecretIdentity> clientSecretIdentityCollection = (await sut.GetClientSecretIdentitiesAsync()).ToList();
            IClientSecretIdentity         result = await sut.GetClientSecretIdentityAsync(clientSecretIdentityCollection[_random.Next(0, clientSecretIdentityCollection.Count - 1)].ClientId);

            Assert.That(result, Is.Not.Null);
        }
Exemplo n.º 14
0
        public async Task ExecuteAsync_WhenClientIdIsUnknown_ReturnsNull()
        {
            CommandHandler sut = CreateSut(false);

            IAuthenticateClientSecretCommand command = CreateCommand();
            IClientSecretIdentity            result  = await sut.ExecuteAsync(command);

            Assert.That(result, Is.Null);
        }
        public void Build_WhereWithClientSecretHasBeenCalled_AssertCorrectClientSecret()
        {
            IClientSecretIdentityBuilder sut = CreateSut();

            string clientSecret          = Fixture.Create <string>();
            IClientSecretIdentity result = sut.WithClientSecret(clientSecret).Build();

            Assert.That(result.ClientSecret, Is.EqualTo(clientSecret));
        }
        public void Build_WhereWithIdentifierHasBeenCalled_AssertCorrectIdentifier()
        {
            IClientSecretIdentityBuilder sut = CreateSut();

            int identifier = Fixture.Create <int>();
            IClientSecretIdentity result = sut.WithIdentifier(identifier).Build();

            Assert.That(result.Identifier, Is.EqualTo(identifier));
        }
Exemplo n.º 17
0
        public void ToDomain_WhenCalledWithoutClientIdAndClientSecret_ReturnsClientSecretIdentityWithIdentifierFromCommand()
        {
            int identifier = _fixture.Create <int>();
            IClientSecretIdentityCommand sut = CreateSut(identifier);

            IClientSecretIdentity result = sut.ToDomain();

            Assert.That(result.Identifier, Is.EqualTo(identifier));
        }
Exemplo n.º 18
0
        public void ToDomain_WhenCalledWithoutClientIdAndClientSecret_ReturnsClientSecretIdentityWhereClientSecretIsNotNullEmptyOrWhiteSpace()
        {
            string friendlyName = _fixture.Create <string>();
            IClientSecretIdentityCommand sut = CreateSut(friendlyName: friendlyName);

            IClientSecretIdentity result = sut.ToDomain();

            Assert.That(string.IsNullOrWhiteSpace(result.ClientSecret), Is.False);
        }
Exemplo n.º 19
0
        public void ToDomain_WhenCalledWithoutClientIdAndClientSecret_ReturnsClientSecretIdentityWithFriendlyNameFromCommand()
        {
            string friendlyName = _fixture.Create <string>();
            IClientSecretIdentityCommand sut = CreateSut(friendlyName: friendlyName);

            IClientSecretIdentity result = sut.ToDomain();

            Assert.That(result.FriendlyName, Is.EqualTo(friendlyName));
        }
        public async Task ExecuteAsync_WhenCalledAndExistingClientIdentifierExists_AssertUpdateClientSecretIdentityAsyncWasCalledOnSecurityRepository()
        {
            CommandHandler sut = CreateSut();

            IClientSecretIdentity clientSecretIdentity = _fixture.BuildClientSecretIdentityMock().Object;
            IUpdateClientSecretIdentityCommand command = CreateCommandMock(clientSecretIdentity: clientSecretIdentity).Object;
            await sut.ExecuteAsync(command);

            _securityRepositoryMock.Verify(m => m.UpdateClientSecretIdentityAsync(It.Is <IClientSecretIdentity>(value => value == clientSecretIdentity)), Times.Once);
        }
Exemplo n.º 21
0
        public void ToDomain_WhenCalledWithClientIdAndClientSecret_ReturnsClientSecretIdentity()
        {
            IClientSecretIdentityCommand sut = CreateSut();

            string clientId              = _fixture.Create <string>();
            string clientSecret          = _fixture.Create <string>();
            IClientSecretIdentity result = sut.ToDomain(clientId, clientSecret);

            Assert.That(result, Is.TypeOf <ClientSecretIdentity>());
        }
Exemplo n.º 22
0
        public void AddToken_WhenCalled_AddsToken()
        {
            IClientSecretIdentity sut = CreateSut();

            IToken token = Fixture.BuildTokenMock().Object;

            sut.AddToken(token);

            Assert.That(sut.Token, Is.EqualTo(token));
        }
Exemplo n.º 23
0
        public async Task QueryAsync_WhenCalled_ReturnsClientSecretIdentityFromSecurityRepository()
        {
            IClientSecretIdentity clientSecretIdentity = _fixture.Create <IClientSecretIdentity>();
            QueryHandler          sut = CreateSut(clientSecretIdentity);

            IGetClientSecretIdentityQuery query  = CreateQueryMock().Object;
            IClientSecretIdentity         result = await sut.QueryAsync(query);

            Assert.That(result, Is.EqualTo(clientSecretIdentity));
        }
Exemplo n.º 24
0
        public void ToDomain_WhenCalledWithClientIdAndClientSecret_ReturnsClientSecretIdentityWithClientSecret()
        {
            string friendlyName = _fixture.Create <string>();
            IClientSecretIdentityCommand sut = CreateSut(friendlyName: friendlyName);

            string clientId              = _fixture.Create <string>();
            string clientSecret          = _fixture.Create <string>();
            IClientSecretIdentity result = sut.ToDomain(clientId, clientSecret);

            Assert.That(result.ClientSecret, Is.EqualTo(clientSecret));
        }
Exemplo n.º 25
0
        public Task <IClientSecretIdentity> UpdateClientSecretIdentityAsync(IClientSecretIdentity clientSecretIdentity)
        {
            NullGuard.NotNull(clientSecretIdentity, nameof(clientSecretIdentity));

            return(ExecuteAsync(async() =>
            {
                using ClientSecretIdentityModelHandler clientSecretIdentityModelHandler = new ClientSecretIdentityModelHandler(DbContext, SecurityModelConverter.Create());
                return await clientSecretIdentityModelHandler.UpdateAsync(clientSecretIdentity);
            },
                                MethodBase.GetCurrentMethod()));
        }
Exemplo n.º 26
0
        public void ToDomain_WhenCalledWithoutClientIdAndClientSecret_ReturnsClientSecretIdentityWithClaimsFromCommand()
        {
            IEnumerable <Claim>          claims = _fixture.CreateMany <Claim>(_random.Next(5, 10)).ToList();;
            IClientSecretIdentityCommand sut    = CreateSut(claims: claims);

            IClientSecretIdentity 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);
            }
        }
Exemplo n.º 27
0
        public async Task ExecuteAsync_WhenClientIdIsKnownAndClientSecretDoesMatch_ReturnsClientSecretIdentity()
        {
            string clientSecret = _fixture.Create <string>();
            IClientSecretIdentity clientSecretIdentity = _fixture.BuildClientSecretIdentityMock(clientSecret: clientSecret).Object;
            CommandHandler        sut = CreateSut(clientSecretIdentity: clientSecretIdentity);

            string submittedClientSecret             = clientSecret;
            IAuthenticateClientSecretCommand command = CreateCommand(clientSecret: submittedClientSecret);
            IClientSecretIdentity            result  = await sut.ExecuteAsync(command);

            Assert.That(result, Is.EqualTo(clientSecretIdentity));
        }
Exemplo n.º 28
0
        public async Task ExecuteAsync_WhenClientIdIsKnownAndClientSecretDoesMatch_AssertGenerateWasCalledOnTokenHelper()
        {
            string clientSecret = _fixture.Create <string>();
            IClientSecretIdentity clientSecretIdentity = _fixture.BuildClientSecretIdentityMock(clientSecret: clientSecret).Object;
            CommandHandler        sut = CreateSut(clientSecretIdentity: clientSecretIdentity);

            string submittedClientSecret             = clientSecret;
            IAuthenticateClientSecretCommand command = CreateCommand(clientSecret: submittedClientSecret);
            await sut.ExecuteAsync(command);

            _tokenHelperMock.Verify(m => m.Generate(It.Is <IClientSecretIdentity>(value => value == clientSecretIdentity)), Times.Once);
        }
Exemplo n.º 29
0
        public async Task ExecuteAsync_WhenClientIdIsKnownAndClientSecretDoesNotMatch_ReturnNull()
        {
            string clientSecret = _fixture.Create <string>();
            Mock <IClientSecretIdentity> clientSecretIdentityMock = _fixture.BuildClientSecretIdentityMock(clientSecret: clientSecret);
            CommandHandler sut = CreateSut(clientSecretIdentity: clientSecretIdentityMock.Object);

            string submittedClientSecret             = _fixture.Create <string>();
            IAuthenticateClientSecretCommand command = CreateCommand(clientSecret: submittedClientSecret);
            IClientSecretIdentity            result  = await sut.ExecuteAsync(command);

            Assert.That(result, Is.Null);
        }
        public void Build_WhereAddClaimsHasBeenCalled_AssertCorrectClaims()
        {
            IClientSecretIdentityBuilder sut = CreateSut();

            IEnumerable <Claim>   claimCollection = Fixture.CreateMany <Claim>(_random.Next(5, 10)).ToList();
            IClientSecretIdentity result          = sut.AddClaims(claimCollection).Build();

            Assert.That(result.ToClaimsIdentity().Claims.Count(), Is.EqualTo(4 + claimCollection.Count()));
            foreach (Claim claim in claimCollection)
            {
                Assert.That(result.ToClaimsIdentity().Claims.SingleOrDefault(m => string.Compare(m.Type, claim.Type, StringComparison.Ordinal) == 0), Is.Not.Null);
            }
        }