예제 #1
0
        public void FindClientByIdAsync_ClientSecretsList_ReturnsClientWithList()
        {
            // Arrange
            var secretStoreFake = A.Fake <IVaultSecretStore>();
            var clientStoreFake = A.Fake <IClientDataStore>();

            A.CallTo(() => clientStoreFake.FindClientByIdAsync("client1234"))
            .Returns(Task.FromResult(new Client()));

            A.CallTo(() => secretStoreFake.GetSecrets("client1234"))
            .Returns(Task.FromResult(new [] { "secret1", "secret2", "secret3" }));

            var clientSecretStore = new ClientSecretStore(secretStoreFake, clientStoreFake);

            // Act
            var result = clientSecretStore.FindClientByIdAsync("client1234").Result;

            // Assert
            result.Should().NotBeNull();
            result.ClientSecrets.Should().NotBeEmpty();

            result.ClientSecrets[0].Value.Should().Be("secret1");
            result.ClientSecrets[0].Type.Should().Be(Constants.VaultSharedSecretType);
            result.ClientSecrets[1].Value.Should().Be("secret2");
            result.ClientSecrets[1].Type.Should().Be(Constants.VaultSharedSecretType);
            result.ClientSecrets[2].Value.Should().Be("secret3");
            result.ClientSecrets[2].Type.Should().Be(Constants.VaultSharedSecretType);
        }
예제 #2
0
        public void FindClientByIdAsync_ClientStoreNull_ReturnsNull()
        {
            // Arrange
            var secretStoreFake = A.Fake <IVaultSecretStore>();
            var clientStoreFake = A.Fake <IClientDataStore>();

            A.CallTo(() => clientStoreFake.FindClientByIdAsync("client1234")).Returns(Task.FromResult <Client>(null));

            var clientSecretStore = new ClientSecretStore(secretStoreFake, clientStoreFake);

            // Act
            var result = clientSecretStore.FindClientByIdAsync("client1234").Result;

            // Assert
            result.Should().BeNull();
            A.CallTo(() => clientStoreFake.FindClientByIdAsync("client1234")).MustHaveHappened();
        }
예제 #3
0
        public void FindClientByIdAsync_ClientSecretsEmpty_ReturnsClientWithEmptyList()
        {
            // Arrange
            var secretStoreFake = A.Fake <IVaultSecretStore>();
            var clientStoreFake = A.Fake <IClientDataStore>();

            A.CallTo(() => clientStoreFake.FindClientByIdAsync("client1234"))
            .Returns(Task.FromResult(new Client()));

            A.CallTo(() => secretStoreFake.GetSecrets("client1234"))
            .Returns(Task.FromResult(new string[0]));

            var clientSecretStore = new ClientSecretStore(secretStoreFake, clientStoreFake);

            // Act
            var result = clientSecretStore.FindClientByIdAsync("client1234").Result;

            // Assert
            result.Should().NotBeNull();
            result.ClientSecrets.Should().BeEmpty();
        }