public void LoadedCommand_Executed_OnlyDatabaseDefinitions_ExtendedSortOrder()
        {
            // Arrange
            var vsa           = Mock.Of <IVisualStudioAccess>();
            var vm            = new PickServerDatabaseViewModel(vsa);
            var dbDefinition1 = new DatabaseDefinitionModel
            {
                FilePath = "TestExampleDatabaseA.sqlproj"
            };
            var dbDefinition2 = new DatabaseDefinitionModel
            {
                FilePath = "ExampleDatabaseB.sqlproj"
            };
            var dbDefinition3 = new DatabaseDefinitionModel
            {
                FilePath = "ExampleDatabaseCtest.sqlproj"
            };

            vm.DatabaseDefinitions.Add(dbDefinition1);
            vm.DatabaseDefinitions.Add(dbDefinition2);
            vm.DatabaseDefinitions.Add(dbDefinition3);

            // Act
            vm.LoadedCommand.Execute(null);

            // Assert
            Assert.IsNull(vm.SelectedDatabaseConnection);
            Assert.AreSame(dbDefinition2, vm.SelectedDatabaseDefinition);
        }
        public void OkCommand_Executed_CloseRequestedToView_DatabaseDefinition()
        {
            // Arrange
            var  dbDefinition   = new DatabaseDefinitionModel();
            var  closeRequested = false;
            bool?dialogResult   = null;
            var  vsa            = Mock.Of <IVisualStudioAccess>();
            var  vm             = new PickServerDatabaseViewModel(vsa)
            {
                SelectedDatabaseDefinition = dbDefinition
            };

            vm.CloseRequested += (sender, args) =>
            {
                closeRequested = true;
                dialogResult   = args.DialogResult;
            };

            // Act
            vm.OkCommand.Execute(null);

            // Assert
            Assert.IsTrue(closeRequested);
            Assert.IsTrue(dialogResult);
            Assert.AreSame(dbDefinition, vm.SelectedDatabaseDefinition);
            Assert.IsNull(vm.SelectedDatabaseConnection);
        }
Exemplo n.º 3
0
        public void LoadedCommand_Executed_OnlyDatabaseDefinitions_ExtendedSortOrder()
        {
            // Arrange
            var vsa           = Mock.Of <IVisualStudioAccess>();
            var psdFactory    = Mock.Of <Func <IPickSchemasDialog> >();
            var connFactory   = Mock.Of <Func <IPickConnectionDialog> >();
            var creds         = Mock.Of <ICredentialStore>();
            var vm            = new PickServerDatabaseViewModel(vsa, creds, psdFactory, connFactory);
            var dbDefinition1 = new DatabaseDefinitionModel
            {
                FilePath = "TestExampleDatabaseA.sqlproj"
            };
            var dbDefinition2 = new DatabaseDefinitionModel
            {
                FilePath = "ExampleDatabaseB.sqlproj"
            };
            var dbDefinition3 = new DatabaseDefinitionModel
            {
                FilePath = "ExampleDatabaseCtest.sqlproj"
            };

            vm.DatabaseDefinitions.Add(dbDefinition1);
            vm.DatabaseDefinitions.Add(dbDefinition2);
            vm.DatabaseDefinitions.Add(dbDefinition3);

            // Act
            vm.LoadedCommand.Execute(null);

            // Assert
            Assert.IsNull(vm.SelectedDatabaseConnection);
            Assert.AreSame(dbDefinition2, vm.SelectedDatabaseDefinition);
        }
        public void CancelCommand_Executed_DatabaseDefinition()
        {
            // Arrange
            var  dbDefinition   = new DatabaseDefinitionModel();
            var  closeRequested = false;
            bool?dialogResult   = null;
            var  vsa            = Mock.Of <IVisualStudioAccess>();
            var  psdFactory     = Mock.Of <Func <IPickSchemasDialog> >();
            var  vm             = new PickServerDatabaseViewModel(vsa, psdFactory)
            {
                SelectedDatabaseDefinition = dbDefinition
            };

            vm.CloseRequested += (sender, args) =>
            {
                closeRequested = true;
                dialogResult   = args.DialogResult;
            };

            // Act
            vm.CancelCommand.Execute(null);

            // Assert
            Assert.IsTrue(closeRequested);
            Assert.IsFalse(dialogResult);
            Assert.IsNull(vm.SelectedDatabaseConnection);
            Assert.IsNull(vm.SelectedDatabaseDefinition);
        }
Exemplo n.º 5
0
        public void LoadedCommand_Executed_DatabaseConnectionsAndDefinitions()
        {
            // Arrange
            var vsa           = Mock.Of <IVisualStudioAccess>();
            var psdFactory    = Mock.Of <Func <IPickSchemasDialog> >();
            var connFactory   = Mock.Of <Func <IPickConnectionDialog> >();
            var creds         = Mock.Of <ICredentialStore>();
            var vm            = new PickServerDatabaseViewModel(vsa, creds, psdFactory, connFactory);
            var dbConnection1 = new DatabaseConnectionModel();
            var dbConnection2 = new DatabaseConnectionModel();
            var dbDefinition1 = new DatabaseDefinitionModel();
            var dbDefinition2 = new DatabaseDefinitionModel();

            vm.DatabaseConnections.Add(dbConnection1);
            vm.DatabaseConnections.Add(dbConnection2);
            vm.DatabaseDefinitions.Add(dbDefinition1);
            vm.DatabaseDefinitions.Add(dbDefinition2);

            // Act
            vm.LoadedCommand.Execute(null);

            // Assert
            Assert.AreSame(dbConnection1, vm.SelectedDatabaseConnection);
            Assert.IsNull(vm.SelectedDatabaseDefinition);
        }
        public void LoadedCommand_Executed_OnlyDatabaseDefinitions_WithOtherFiles()
        {
            // Arrange
            var vsa           = Mock.Of <IVisualStudioAccess>();
            var psdFactory    = Mock.Of <Func <IPickSchemasDialog> >();
            var vm            = new PickServerDatabaseViewModel(vsa, psdFactory);
            var dbDefinition1 = new DatabaseDefinitionModel
            {
                FilePath = "ExampleDatabaseA.dacpac"
            };
            var dbDefinition2 = new DatabaseDefinitionModel
            {
                FilePath = "ExampleDatabaseB.sqlproj"
            };
            var dbDefinition3 = new DatabaseDefinitionModel
            {
                FilePath = "ExampleDatabaseC.txt"
            };

            vm.DatabaseDefinitions.Add(dbDefinition1);
            vm.DatabaseDefinitions.Add(dbDefinition2);
            vm.DatabaseDefinitions.Add(dbDefinition3);

            // Act
            vm.LoadedCommand.Execute(null);

            // Assert
            Assert.IsNull(vm.SelectedDatabaseConnection);
            Assert.AreSame(dbDefinition2, vm.SelectedDatabaseDefinition);
        }
Exemplo n.º 7
0
        public void PropertyChanged_NotInvokedForEqualValues()
        {
            // Arrange
            var invokes = 0;
            var ddm     = new DatabaseDefinitionModel();

            ddm.PropertyChanged += (sender, args) => invokes++;

            // Act
            ddm.FilePath = null;

            // Assert
            Assert.AreEqual(0, invokes);
            Assert.IsNull(ddm.FilePath);
        }
        public void OkCommand_CanExecute_DefinitionSelected()
        {
            // Arrange
            var dbDefinition = new DatabaseDefinitionModel();
            var vsa          = Mock.Of <IVisualStudioAccess>();
            var vm           = new PickServerDatabaseViewModel(vsa)
            {
                SelectedDatabaseDefinition = dbDefinition
            };

            // Act
            var canExecute = vm.OkCommand.CanExecute(null);

            // Assert
            Assert.IsTrue(canExecute);
        }
Exemplo n.º 9
0
        public void PropertyChanged_InvokedForDifferentValues()
        {
            // Arrange
            var invokes = 0;
            var ddm     = new DatabaseDefinitionModel();

            ddm.PropertyChanged += (sender, args) => invokes++;
            const string filePath = @"C:\Temp\Test\Database.dacpac";

            // Act
            ddm.FilePath = filePath;

            // Assert
            Assert.AreEqual(1, invokes);
            Assert.AreEqual(filePath, ddm.FilePath);
        }
        public void PropertyChangedOnDatabaseDefinitionsChanged()
        {
            // Arrange
            string propertyChangedName = null;
            var    dbDefinition        = new DatabaseDefinitionModel();
            var    vsa = Mock.Of <IVisualStudioAccess>();
            var    vm  = new PickServerDatabaseViewModel(vsa);

            vm.PropertyChanged += (sender, args) => propertyChangedName = args.PropertyName;

            // Act
            vm.DatabaseDefinitions.Add(dbDefinition);

            // Assert
            Assert.IsNotNull(propertyChangedName);
            Assert.AreEqual(nameof(IPickServerDatabaseViewModel.DatabaseDefinitions), propertyChangedName);
        }
Exemplo n.º 11
0
        public void OkCommand_CanExecute_DefinitionSelected()
        {
            // Arrange
            var dbDefinition = new DatabaseDefinitionModel();
            var vsa          = Mock.Of <IVisualStudioAccess>();
            var psdFactory   = Mock.Of <Func <IPickSchemasDialog> >();
            var connFactory  = Mock.Of <Func <IPickConnectionDialog> >();
            var vm           = new PickServerDatabaseViewModel(vsa, psdFactory, connFactory)
            {
                SelectedDatabaseDefinition = dbDefinition
            };

            // Act
            var canExecute = vm.OkCommand.CanExecute(null);

            // Assert
            Assert.IsTrue(canExecute);
        }
Exemplo n.º 12
0
        public void AddDatabaseDefinitionCommand_Executed_NewDefinitionReturned()
        {
            // Arrange
            var dbDefinition = new DatabaseDefinitionModel();
            var vsaMock      = new Mock <IVisualStudioAccess>();
            var psdFactory   = Mock.Of <Func <IPickSchemasDialog> >();

            vsaMock.Setup(m => m.PromptForNewDatabaseDefinition()).Returns(dbDefinition);
            var vm = new PickServerDatabaseViewModel(vsaMock.Object, psdFactory);

            // Act
            vm.AddDatabaseDefinitionCommand.Execute(null);

            // Assert
            CollectionAssert.Contains(vm.DatabaseDefinitions, dbDefinition);
            Assert.AreSame(dbDefinition, vm.SelectedDatabaseDefinition);
            vsaMock.Verify(m => m.PromptForNewDatabaseDefinition(), Times.Once);
        }
        public void Selection_OnlyConnectionOrDefinitionSelected_DatabaseDefinition()
        {
            // Arrange
            var dbConnection = new DatabaseConnectionModel();
            var dbDefinition = new DatabaseDefinitionModel();
            var vsa          = Mock.Of <IVisualStudioAccess>();
            // ReSharper disable once UseObjectOrCollectionInitializer
            var vm = new PickServerDatabaseViewModel(vsa)
            {
                SelectedDatabaseConnection = dbConnection
            };

            // Act
            vm.SelectedDatabaseDefinition = dbDefinition;

            // Assert
            Assert.IsNull(vm.SelectedDatabaseConnection);
            Assert.AreSame(dbDefinition, vm.SelectedDatabaseDefinition);
        }
        public void LoadedCommand_Executed_OnlyDatabaseDefinitions_FilePathNull()
        {
            // Arrange
            var vsa          = Mock.Of <IVisualStudioAccess>();
            var vm           = new PickServerDatabaseViewModel(vsa);
            var dbDefinition = new DatabaseDefinitionModel
            {
                FilePath = null
            };

            vm.DatabaseDefinitions.Add(dbDefinition);

            // Act
            vm.LoadedCommand.Execute(null);

            // Assert
            Assert.IsNull(vm.SelectedDatabaseConnection);
            Assert.IsNull(vm.SelectedDatabaseDefinition);
        }
Exemplo n.º 15
0
        public void PropertyChangedOnDatabaseDefinitionsChanged()
        {
            // Arrange
            string propertyChangedName = null;
            var    dbDefinition        = new DatabaseDefinitionModel();
            var    vsa         = Mock.Of <IVisualStudioAccess>();
            var    psdFactory  = Mock.Of <Func <IPickSchemasDialog> >();
            var    connFactory = Mock.Of <Func <IPickConnectionDialog> >();
            var    creds       = Mock.Of <ICredentialStore>();
            var    vm          = new PickServerDatabaseViewModel(vsa, creds, psdFactory, connFactory);

            vm.PropertyChanged += (sender, args) => propertyChangedName = args.PropertyName;

            // Act
            vm.DatabaseDefinitions.Add(dbDefinition);

            // Assert
            Assert.IsNotNull(propertyChangedName);
            Assert.AreEqual(nameof(IPickServerDatabaseViewModel.DatabaseDefinitions), propertyChangedName);
        }
        public void Selection_OnlyConnectionOrDefinitionSelected_DatabaseDefinition()
        {
            // Arrange
            var dbConnection = new DatabaseConnectionModel();
            var dbDefinition = new DatabaseDefinitionModel();
            var vsa          = Mock.Of <IVisualStudioAccess>();
            var psdFactory   = Mock.Of <Func <IPickSchemasDialog> >();
            var connFactory  = Mock.Of <Func <IPickConnectionDialog> >();
            var creds        = Mock.Of <ICredentialStore>();
            var vm           = new PickServerDatabaseViewModel(vsa, creds, psdFactory, connFactory)
            {
                SelectedDatabaseConnection = dbConnection,
            };

            // Act
            vm.SelectedDatabaseDefinition = dbDefinition;

            // Assert
            Assert.IsNull(vm.SelectedDatabaseConnection);
            Assert.AreSame(dbDefinition, vm.SelectedDatabaseDefinition);
        }
        public void LoadedCommand_Executed_DatabaseConnectionsAndDefinitions()
        {
            // Arrange
            var vsa           = Mock.Of <IVisualStudioAccess>();
            var vm            = new PickServerDatabaseViewModel(vsa);
            var dbConnection1 = new DatabaseConnectionModel();
            var dbConnection2 = new DatabaseConnectionModel();
            var dbDefinition1 = new DatabaseDefinitionModel();
            var dbDefinition2 = new DatabaseDefinitionModel();

            vm.DatabaseConnections.Add(dbConnection1);
            vm.DatabaseConnections.Add(dbConnection2);
            vm.DatabaseDefinitions.Add(dbDefinition1);
            vm.DatabaseDefinitions.Add(dbDefinition2);

            // Act
            vm.LoadedCommand.Execute(null);

            // Assert
            Assert.AreSame(dbConnection1, vm.SelectedDatabaseConnection);
            Assert.IsNull(vm.SelectedDatabaseDefinition);
        }