Пример #1
0
            public async Task A_successful_result_is_being_returned()
            {
                var credentialStorage =
                    new CredentialStorage(Substitute.For <ISecureStorageUtility>());

                var credentials = new Credentials("foo", "bar");

                var result = await credentialStorage.SaveCredentialsAsync(credentials)
                             .ConfigureAwait(false);

                result.IsSuccessful.ShouldBeTrue();
            }
Пример #2
0
            public async Task The_Password_is_being_saved()
            {
                var secureStorageUtility = Substitute.For <ISecureStorageUtility>();
                var credentialStorage    = new CredentialStorage(secureStorageUtility);

                var credentials = new Credentials(
                    Guid.NewGuid().ToString(),
                    Guid.NewGuid().ToString()
                    );

                await credentialStorage.SaveCredentialsAsync(credentials).ConfigureAwait(false);

                await secureStorageUtility.Received().SetAsync(
                    Arg.Is(CredentialStorage.SecureStoragePasswordKey),
                    Arg.Is(credentials.Password)
                    ).ConfigureAwait(false);
            }
Пример #3
0
        public ICredStashReader Build()
        {
            if (_dynamoDbClient == null)
            {
                _dynamoDbClient = new AmazonDynamoDBClient();
            }
            if (_keyManagementServiceClient == null)
            {
                _keyManagementServiceClient = new AmazonKeyManagementServiceClient();
            }
            if (_credStashConfig == null)
            {
                _credStashConfig = CredStashConfig.Default();
            }

            var credentialStorage = new CredentialStorage(_credStashConfig, _dynamoDbClient);
            var masterKeyStorage  = new MasterKeyStorage(_keyManagementServiceClient);

            return(new CredStashReader(credentialStorage, masterKeyStorage, new HmacSha256Verifier(), new AesCrypto()));
        }
Пример #4
0
            public async Task An_result_with_that_exception_is_being_returned()
            {
                var secureStorageUtility = Substitute.For <ISecureStorageUtility>();

                var exceptionMessage = Guid.NewGuid().ToString();
                var exception        = new Exception(exceptionMessage);

                secureStorageUtility.SetAsync(Arg.Any <string>(), Arg.Any <string>())
                .Throws(exception);

                var credentialStorage = new CredentialStorage(secureStorageUtility);

                var credentials = new Credentials("foo", "bar");

                var result = await credentialStorage.SaveCredentialsAsync(credentials)
                             .ConfigureAwait(false);

                result.IsSuccessful.ShouldBeFalse();
                result.Exception.ShouldBeSameAs(exception);
                result.ErrorMessage.ShouldBeSameAs(exceptionMessage);
            }
Пример #5
0
            A_nonesuccessful_result_is_being_returned_when_the_Password_cannot_be_received()
            {
                string userName = Guid.NewGuid().ToString();

                var secureStorageUtility = Substitute.For <ISecureStorageUtility>();

                secureStorageUtility
                .GetAsync(Arg.Is(CredentialStorage.SecureStorageUserNameKey))
                .Returns(userName);

                secureStorageUtility
                .GetAsync(Arg.Is(CredentialStorage.SecureStoragePasswordKey))
                .Returns(default(string));

                var credentialStorage = new CredentialStorage(secureStorageUtility);

                var result =
                    await credentialStorage.GetCredentialsAsync().ConfigureAwait(false);

                result.IsSuccessful.ShouldBeFalse();
            }
Пример #6
0
            A_successful_result_is_being_returned_when_both_UserName_and_Password_can_be_received()
            {
                string userName = Guid.NewGuid().ToString();
                string password = Guid.NewGuid().ToString();

                var secureStorageUtility = Substitute.For <ISecureStorageUtility>();

                secureStorageUtility
                .GetAsync(Arg.Is(CredentialStorage.SecureStorageUserNameKey))
                .Returns(userName);

                secureStorageUtility
                .GetAsync(Arg.Is(CredentialStorage.SecureStoragePasswordKey))
                .Returns(password);

                var credentialStorage = new CredentialStorage(secureStorageUtility);

                var result =
                    await credentialStorage.GetCredentialsAsync().ConfigureAwait(false);

                result.IsSuccessful.ShouldBeTrue();
                result.Value.UserName.ShouldBeSameAs(userName);
                result.Value.Password.ShouldBeSameAs(password);
            }
Пример #7
0
 public DefaultApiAuthenticatorImpl(CredentialStorage credentialStorage)
 {
     this.credentialStorage = credentialStorage;
 }
Пример #8
0
 public DefaultApiAuthenticatorImpl()
 {
     this.credentialStorage = new MysqlCredentialStorage();
 }