public void CanAddKeyVaultCommandForEmptyConfigurationTest()
        {
            var mockKeyVaultConfiguration = new Mock<KeyVaultConfiguration>();
            var addKeyVaultAccountViewModel =
                new AddKeyVaultAccountViewModel(
                    new Mock<IKeyVaultConfigurationRepository>().Object,
                    mockKeyVaultConfiguration.Object);

            var canExecute = addKeyVaultAccountViewModel.AddKeyVaultAccountCommand.CanExecute(null);

            Assert.IsFalse(canExecute);
        }
        public void CanAddKeyVaultCommandForExistingConfigrationTest()
        {
            var mockKeyVaultConfiguration = MockKeyVaultConfiguration;
            var keyVaultConfigurationRepository = new Mock<IKeyVaultConfigurationRepository>();
            keyVaultConfigurationRepository.Setup(
                m => m.Get(mockKeyVaultConfiguration.VaultName)).Returns(mockKeyVaultConfiguration);

            var addKeyVaultAccountViewModel =
                new AddKeyVaultAccountViewModel(
                    keyVaultConfigurationRepository.Object,
                    mockKeyVaultConfiguration);
            var canExecute = addKeyVaultAccountViewModel.AddKeyVaultAccountCommand.CanExecute(null);
            Assert.IsFalse(canExecute);
        }
        public void AddKeyVaultCommandConfigurationTest()
        {
            var mockKeyVaultConfiguration = MockKeyVaultConfiguration;
            var keyVaultConfigurationRepository = new Mock<IKeyVaultConfigurationRepository>();
            keyVaultConfigurationRepository.Setup(
                a => a.InsertOrUpdate(mockKeyVaultConfiguration)).Returns(Task.FromResult(true));

            var addKeyVaultAccountViewModel =
                new AddKeyVaultAccountViewModel(
                    keyVaultConfigurationRepository.Object,
                    mockKeyVaultConfiguration);

            addKeyVaultAccountViewModel.AddKeyVaultAccountCommand.Execute(null);

            keyVaultConfigurationRepository.Verify(a => a.InsertOrUpdate(mockKeyVaultConfiguration), Times.Once);
        }
        public void CanAddKeyVaultCommandForInvalidConfigurationUrlTest()
        {
            var mockKeyVaultConfiguration = new Mock<KeyVaultConfiguration>();
            mockKeyVaultConfiguration.SetupAllProperties();
            mockKeyVaultConfiguration.Object.ADApplicationClientId = "1";
            mockKeyVaultConfiguration.Object.AzureKeyVaultUrl = "https://invalidurl.test";
            mockKeyVaultConfiguration.Object.ADApplicationSecret = "secret";

            var addKeyVaultAccountViewModel =
                new AddKeyVaultAccountViewModel(
                    new Mock<IKeyVaultConfigurationRepository>().Object,
                    mockKeyVaultConfiguration.Object);

            var canExecute = addKeyVaultAccountViewModel.AddKeyVaultAccountCommand.CanExecute(null);

            Assert.IsFalse(canExecute);

            addKeyVaultAccountViewModel.KeyVaultUrl = @"https://test.vault.azure.net/";

            canExecute = addKeyVaultAccountViewModel.AddKeyVaultAccountCommand.CanExecute(null);

            Assert.IsTrue(canExecute);
        }
        public void CreateInstanceTest()
        {
            var mockKeyVaultConfiguration = MockKeyVaultConfiguration;

            var addKeyVaultAccountViewModel =
                new AddKeyVaultAccountViewModel(
                    new Mock<IKeyVaultConfigurationRepository>().Object,
                    mockKeyVaultConfiguration);
            Assert.IsInstanceOfType(addKeyVaultAccountViewModel, typeof(ValidatableViewModelBase));
            Assert.AreEqual(addKeyVaultAccountViewModel.ADApplicationId, mockKeyVaultConfiguration.ADApplicationClientId);
            Assert.AreEqual(addKeyVaultAccountViewModel.KeyVaultUrl, mockKeyVaultConfiguration.AzureKeyVaultUrl);
            Assert.AreEqual(addKeyVaultAccountViewModel.ADApplicationSecret, mockKeyVaultConfiguration.ADApplicationSecret);
        }
        public void CancelAddKeyVaultAccountTest()
        {
            var mockKeyVaultConfiguration = MockKeyVaultConfiguration;
            var keyVaultConfigurationRepository = new Mock<IKeyVaultConfigurationRepository>();

            var addKeyVaultAccountViewModel =
                new AddKeyVaultAccountViewModel(
                    keyVaultConfigurationRepository.Object,
                    mockKeyVaultConfiguration);
            addKeyVaultAccountViewModel.RequestClose += (sender, e) => Assert.IsNotNull(sender);

            addKeyVaultAccountViewModel.CancelAddKeyVaultAccountCommand.Execute(null);

            keyVaultConfigurationRepository.Verify(a => a.InsertOrUpdate(mockKeyVaultConfiguration), Times.Never);
        }
 public void CanAddKeyVaultCommandForValidConfigrationWithWwwInUrlTest()
 {
     var mockKeyVaultConfiguration = MockKeyVaultConfiguration;
     mockKeyVaultConfiguration.AzureKeyVaultUrl = @"https://www.test.vault.azure.net/";
     var addKeyVaultAccountViewModel =
         new AddKeyVaultAccountViewModel(
             new Mock<IKeyVaultConfigurationRepository>().Object,
             mockKeyVaultConfiguration);
     var canExecute = addKeyVaultAccountViewModel.AddKeyVaultAccountCommand.CanExecute(null);
     Assert.IsTrue(canExecute);
 }
 public void CanAddKeyVaultCommandForValidConfigrationTest()
 {
     var mockKeyVaultConfiguration = MockKeyVaultConfiguration;
     var addKeyVaultAccountViewModel =
         new AddKeyVaultAccountViewModel(
             new Mock<IKeyVaultConfigurationRepository>().Object,
             mockKeyVaultConfiguration);
     var canExecute = addKeyVaultAccountViewModel.AddKeyVaultAccountCommand.CanExecute(null);
     Assert.IsTrue(canExecute);
 }