Exemplo n.º 1
0
 public KeyVaultConfigurationSettings(string authUrl, string vaultUrl, string identity, string credential, Authentication.AuthenticationType credentialType, string secretPrefix)
 {
     AuthURL  = authUrl;
     VaultURL = vaultUrl;
     ConnectingAccountIdentity   = identity;
     ConnectingAccountCredential = credential;
     CredentialType = credentialType;
     SecretPrefix   = secretPrefix;
 }
        public void Credential_ExpiryDateIsValid_ReturnsTrue(Authentication.AuthenticationType type)
        {
            var credential = _common.GetDefaultCredential(type);

            var connectionService = Substitute.For <Service.ConnectionService>(null, null, null);

            connectionService.Credential.Returns(credential);

            var result = connectionService.IsValidCredential(out var message);

            Assert.True(result, "Expected value: true; the credential expiry should be evaluated as 'valid' (not expired)");
        }
Exemplo n.º 3
0
        public void SignInCommand_CredentialIsValid_ReturnsTrue(Authentication.AuthenticationType type)
        {
            var credential = _common.GetDefaultCredential(type);

            var connectionService = Substitute.For <Service.ConnectionService>(null, null, null);

            connectionService.Credential.Returns(credential);


            if (type == Authentication.AuthenticationType.Studio)
            {
                connectionService.IsValidStudioCredential(out Arg.Any <string>()).Returns(x =>
                {
                    x[0] = "Credential is not valid!";
                    return(false);
                });

                var languageCloudIdentityApiModel = new LanguageCloudIdentityApiModel
                {
                    AccessToken = credential.Token,
                    Email       = credential.Name
                };
                connectionService.StudioSignIn()
                .Returns(new Tuple <LanguageCloudIdentityApiModel, string>(languageCloudIdentityApiModel, string.Empty));
            }
            else
            {
                var authorizationResponse = new AuthorizationResponse
                {
                    AccessToken = credential.Token
                };
                connectionService.SignIn(Arg.Any <string>(), Arg.Any <string>())
                .Returns(Task.FromResult(new Tuple <AuthorizationResponse, string>(authorizationResponse, string.Empty)));
            }

            var userDetails = new UserDetails
            {
                AccountId = 0123,
                UserId    = type != Authentication.AuthenticationType.Client ? "abc123" : null,
                ClientId  = type == Authentication.AuthenticationType.Client ? "abc123" : null,
            };

            connectionService.GetUserDetails(Arg.Any <string>(), Arg.Any <string>())
            .Returns(Task.FromResult(new Tuple <UserDetails, string>(userDetails, string.Empty)));

            var model = Substitute.For <CredentialsViewModel>(null, connectionService);

            Assert.False(model.IsSignedIn, "Expected: 'False' Found: 'True'");

            model.SignInCommand.Execute(null);
            Assert.True(model.IsSignedIn, "Expected: 'True' Found: 'False'");
        }
Exemplo n.º 4
0
        public ICredential GetDefaultCredential(Authentication.AuthenticationType type)
        {
            var credential = new Credential
            {
                Type      = type,
                ValidTo   = DateTime.UtcNow.AddHours(1),
                Token     = "abc123",
                Name      = "Name",
                Password  = "******",
                AccountId = "0123456789"
            };

            return(credential);
        }
        public void Credential_PasswordIsEmpty_ReturnsFalse(Authentication.AuthenticationType type)
        {
            var credential = _common.GetDefaultCredential(type);

            credential.Password = string.Empty;

            var connectionService = Substitute.For <Service.ConnectionService>(null, null, null);

            connectionService.Credential.Returns(credential);

            var result = connectionService.IsValidCredential(out var message);

            Assert.False(result, "Expected value: false; the credential Password should be evaluated as 'not valid' (empty)");
        }
        public void Credential_ExpiryDateIsValid_ReturnsFalse(Authentication.AuthenticationType type)
        {
            var credential = _common.GetDefaultCredential(type);

            credential.ValidTo = DateTime.UtcNow.Subtract(new TimeSpan(0, 1, 0, 0, 0));

            var connectionService = Substitute.For <Service.ConnectionService>(null, null, null);

            connectionService.Credential.Returns(credential);

            var result = connectionService.IsValidCredential(out var message);

            Assert.False(result, "Expected value: false; the credential expiry date should be evaluated as 'not valid' (expired)");
        }
        public void Connect_CredentialIsInvalidAndAttemptConnection_ReturnsFalse(Authentication.AuthenticationType type)
        {
            var credential = _common.GetDefaultCredential(type);

            credential.ValidTo = DateTime.UtcNow.Subtract(new TimeSpan(0, 1, 0, 0, 0));

            var connectionService = Substitute.For <Service.ConnectionService>(null, null, null);

            connectionService.Credential.Returns(credential);

            if (type == Authentication.AuthenticationType.Studio)
            {
                connectionService.IsValidStudioCredential(out Arg.Any <string>()).Returns(x =>
                {
                    x[0] = "Credential has expired";
                    return(false);
                });

                var languageCloudIdentityApiModel = new LanguageCloudIdentityApiModel
                {
                    AccessToken = string.Empty,
                    Email       = string.Empty
                };
                connectionService.StudioSignIn()
                .Returns((languageCloudIdentityApiModel, "Invalid Credentials!"));
            }
            else
            {
                var authorizationResponse = new AuthorizationResponse
                {
                    AccessToken = string.Empty
                };
                connectionService.SignIn(Arg.Any <string>(), Arg.Any <string>())
                .Returns(Task.FromResult((authorizationResponse, "Invalid Credentials!")));
            }

            var userDetails = new UserDetails
            {
                AccountId = 0123,
                UserId    = type != Authentication.AuthenticationType.Client ? "abc123" : null,
                ClientId  = type == Authentication.AuthenticationType.Client ? "abc123" : null,
            };

            connectionService.GetUserDetails(Arg.Any <string>())
            .Returns(Task.FromResult((userDetails, string.Empty)));

            var result = connectionService.Connect(credential);

            Assert.False(result.Item1, "Expected value: false");
        }
Exemplo n.º 8
0
        public void Constructor_InitializesPropertiesCorrectly_ReturnsTrue(Authentication.AuthenticationType type)
        {
            var credential = _common.GetDefaultCredential(type);

            var connectionService = Substitute.For <Service.ConnectionService>(null, null, null);

            connectionService.Credential.Returns(credential);

            if (type == Authentication.AuthenticationType.Studio)
            {
                connectionService.IsValidStudioCredential(out Arg.Any <string>()).Returns(x =>
                {
                    x[0] = string.Empty;
                    return(true);
                });
            }


            var model = Substitute.For <CredentialsViewModel>(null, connectionService);

            Assert.True(model.SelectedAuthentication.Type == credential.Type, "Expected: '" + credential.Type + "' Found: '" + model.SelectedAuthentication.Type + "'");

            switch (type)
            {
            case Authentication.AuthenticationType.Studio:
                Assert.True(model.StudioSignedInAs == credential.Name, "Expected: '" + credential.Name + "' Found: '" + model.StudioSignedInAs + "'");
                break;

            case Authentication.AuthenticationType.User:
                Assert.True(model.UserName == credential.Name, "Expected: '" + credential.Name + "' Found: '" + model.UserName + "'");
                Assert.True(model.UserPassword == credential.Password, "Expected: '" + credential.Password + "' Found: '" + model.UserPassword + "'");
                break;

            case Authentication.AuthenticationType.Client:
                Assert.True(model.ClientId == credential.Name, "Expected: '" + credential.Name + "' Found: '" + model.ClientId + "'");
                Assert.True(model.ClientSecret == credential.Password, "Expected: '" + credential.Password + "' Found: '" + model.ClientSecret + "'");
                break;
            }
        }
        public void Connect_CredentialIsValid_ReturnsTrue(Authentication.AuthenticationType type)
        {
            var credential = _common.GetDefaultCredential(type);

            var connectionService = Substitute.For <Service.ConnectionService>(null, null, null);

            connectionService.Credential.Returns(credential);

            if (type == Authentication.AuthenticationType.Studio)
            {
                connectionService.IsValidStudioCredential(out Arg.Any <string>()).Returns(x =>
                {
                    x[0] = string.Empty;
                    return(true);
                });

                var languageCloudIdentityApiModel = new LanguageCloudIdentityApiModel
                {
                    AccessToken = credential.Token,
                    Email       = credential.Name
                };
                connectionService.StudioSignIn().Returns((languageCloudIdentityApiModel, string.Empty));

                var userDetails = new UserDetails
                {
                    AccountId = 0123,
                    UserId    = "abc123",
                    ClientId  = null
                };
                connectionService.GetUserDetails(Arg.Any <string>()).Returns(
                    Task.FromResult((userDetails, string.Empty)));
            }

            var result = connectionService.Connect(credential);

            Assert.True(result.Item1, "Expected value: true");
        }