Example #1
0
        public void SelectTables_Collection()
        {
            // Arrange
            var vm = new ObjectTreeViewModel(CreateSchemaInformationViewModelMockObject, CreateTableInformationViewModelMockObject, CreateColumnInformationViewModelMockObject);

            vm.AddObjects(GetDatabaseObjects(), null);

            // Act
            var selectedObjects = GetSelectedObjects();

            vm.SelectObjects(selectedObjects);

            // Assert
            Assert.AreEqual(GetSelectedObjects().Count(), vm.GetSelectedObjects().Count());
            for (var i = 0; i < vm.GetSelectedObjects().Count(); i++)
            {
                var a = vm.GetSelectedObjects().ElementAt(i);
                var b = selectedObjects.ElementAt(i);

                Assert.AreEqual(a.Name, b.Name);
                Assert.AreEqual(a.ObjectType, b.ObjectType);
                for (var j = 0; j < a.ExcludedColumns?.Count(); j++)
                {
                    Assert.AreEqual(a.ExcludedColumns.ElementAt(0), b.ExcludedColumns.ElementAt(0));
                }
            }
        }
Example #2
0
        public void GetSelectedObjects_WithObjects_AllSelected()
        {
            // Arrange
            var vm = new ObjectTreeViewModel(CreateSchemaInformationViewModelMockObject, CreateTableInformationViewModelMockObject, CreateColumnInformationViewModelMockObject);
            var databaseObjects = GetDatabaseObjects().OrderBy(c => c.Schema).ThenBy(c => c.Name).ToArray();

            vm.AddObjects(databaseObjects, null);
            foreach (var item in vm.Types)
            {
                item.SetSelectedCommand.Execute(true);
            }

            // Act
            var result = vm.GetSelectedObjects().OrderBy(c => c.Name).ToArray();

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(11, result.Count());
            for (var i = 0; i < result.Length - 1; i++)
            {
                Assert.AreEqual(databaseObjects[i + 1].DisplayName, result[i].Name);
            }

            // Act
            var renamed = vm.GetRenamedObjects();

            Assert.AreEqual(0, renamed.Count());
        }
Example #3
0
        public void GetSelectedObjects_WithObjects_PartialSelection()
        {
            // Arrange
            var vm = new ObjectTreeViewModel(CreateSchemaInformationViewModelMockObject, CreateTableInformationViewModelMockObject, CreateColumnInformationViewModelMockObject);
            var databaseObjects = GetDatabaseObjects();

            vm.AddObjects(databaseObjects, null);
            foreach (var item in vm.Types.SelectMany(c => c.Schemas).OrderBy(c => c.Name))
            {
                item.Objects.First().SetSelectedCommand.Execute(true);
            }

            // Act
            var result = vm.GetSelectedObjects().ToArray();

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(6, result.Length);
            foreach (var item in vm.Types.SelectMany(c => c.Schemas).OrderBy(c => c.Name))
            {
                Assert.IsTrue(result.Any(c => c.Name == item.Objects.First().ModelDisplayName));
            }
            //Assert.AreEqual(databaseObjects.First(c => c.ObjectType == ObjectType.Table).DisplayName, result[0].Name);
            //Assert.AreEqual(databaseObjects.First(c => c.ObjectType == ObjectType.View).DisplayName, result[1].Name);
            //Assert.AreEqual(databaseObjects.First(c => c.ObjectType == ObjectType.Procedure).DisplayName, result[2].Name);
            //Assert.AreEqual(databaseObjects.First(c => c.ObjectType == ObjectType.Procedure).DisplayName, result[3].Name);
            //Assert.AreEqual(databaseObjects.First(c => c.ObjectType == ObjectType.Procedure).DisplayName, result[4].Name);
        }
Example #4
0
        public void GetRenamedObjects()
        {
            // Arrange
            var vm = new ObjectTreeViewModel(CreateSchemaInformationViewModelMockObject, CreateTableInformationViewModelMockObject, CreateColumnInformationViewModelMockObject);
            var databaseObjects = GetDatabaseObjects();

            vm.AddObjects(databaseObjects, null);

            //Act
            vm.Types[0].Schemas[0].Objects[0].SetSelectedCommand.Execute(true);
            vm.Types[0].Schemas[0].Objects[0].NewName            = "NewTableName";
            vm.Types[0].Schemas[0].Objects[0].Columns[0].NewName = "NewColumnName";

            vm.Types[0].Schemas[3].Objects[0].SetSelectedCommand.Execute(true);
            vm.Types[0].Schemas[3].Objects[0].NewName = "DepartmentDetail";

            vm.Types[0].Schemas[3].Objects[0].Columns[0].SetSelectedCommand.Execute(true);
            vm.Types[0].Schemas[3].Objects[0].Columns[0].NewName = "DepartmentName";

            //Assert
            var renamedObjects = vm.GetRenamedObjects();

            Assert.IsNotNull(renamedObjects);
            Assert.AreSame(renamedObjects.First().Tables[0].NewName, "NewTableName");
            Assert.AreSame(renamedObjects.First().Tables[0].Columns[0].NewName, "NewColumnName");

            Assert.AreSame(renamedObjects.Last().Tables[0].NewName, "DepartmentDetail");
            Assert.AreSame(renamedObjects.Last().Tables[0].Columns[0].NewName, "DepartmentName");
        }
Example #5
0
        public void AddObjects_Replacers()
        {
            // Arrange
            var vm        = new ObjectTreeViewModel(CreateSchemaInformationViewModelMockObject, CreateTableInformationViewModelMockObject, CreateColumnInformationViewModelMockObject);
            var objects   = GetDatabaseObjects().ToArray();
            var replacers = GetReplacers();

            // Act
            vm.AddObjects(objects, replacers);
            var vmobjects = vm.Types.SelectMany(t => t.Schemas).SelectMany(c => c.Objects).ToArray();

            vm.SetSelectionState(true);
            var renamers = vm.GetRenamedObjects();

            // Assert
            Assert.AreEqual(replacers.Length, renamers.Count());

            foreach (var replacerSchema in replacers)
            {
                foreach (var table in replacerSchema.Tables)
                {
                    var vmobject = vmobjects.First(o => o.Schema == replacerSchema.SchemaName && o.Name.Equals(table.Name, StringComparison.OrdinalIgnoreCase));
                    Assert.AreEqual(vmobject.NewName, table.NewName);
                    foreach (var column in table.Columns)
                    {
                        Assert.AreEqual(vmobject.Columns.First(c => c.Name.Equals(column.Name, StringComparison.OrdinalIgnoreCase)).NewName, column.NewName);
                    }
                }
            }
        }
Example #6
0
        public void SelectObjects_Null()
        {
            // Arrange
            var vm = new ObjectTreeViewModel(CreateSchemaInformationViewModelMockObject, CreateTableInformationViewModelMockObject, CreateColumnInformationViewModelMockObject);

            //Act and assert
            Assert.Throws <ArgumentNullException>(() => vm.SelectObjects(null));
        }
Example #7
0
        public void Constructors_CollectionsInitialized()
        {
            // Act
            var vm = new ObjectTreeViewModel(CreateSchemaInformationViewModelMockObject, CreateTableInformationViewModelMockObject, CreateColumnInformationViewModelMockObject);

            // Assert
            Assert.IsNotNull(vm.Types);
        }
        public void AddObjects_Replacers_Issue679()
        {
            // Arrange
            var vm = new ObjectTreeViewModel(CreateSchemaInformationViewModelMockObject, CreateTableInformationViewModelMockObject, CreateColumnInformationViewModelMockObject);

            var objects = new TableModel[2];

            objects[0] = new TableModel("departmentdetail", null, ReverseEngineer20.DatabaseType.Mysql, ObjectType.Table, new List <ColumnModel> {
                new ColumnModel("DEPTCode", false)
            }.ToArray());
            objects[1] = new TableModel("employeedetail", null, ReverseEngineer20.DatabaseType.Mysql, ObjectType.Table, new List <ColumnModel> {
                new ColumnModel("EMPCode", false)
            }.ToArray());

            var replacers = new Schema[1];

            replacers[0] = new Schema()
            {
                SchemaName    = null,
                UseSchemaName = false,
                Tables        = new List <TableRenamer>
                {
                    new TableRenamer
                    {
                        Name    = "departmentdetail",
                        NewName = "DepartmentDetail",
                        Columns = new List <ColumnNamer>
                        {
                            new ColumnNamer {
                                Name = "DEPTCode", NewName = "DEPTCode"
                            },
                        }
                    },
                    new TableRenamer
                    {
                        Name    = "employeedetail",
                        NewName = "EmployeeDetail",
                        Columns = new List <ColumnNamer>
                        {
                            new ColumnNamer {
                                Name = "EMPCode", NewName = "EMPCode"
                            },
                        }
                    }
                },
            };

            // Act
            vm.AddObjects(objects, replacers);
            vm.SetSelectionState(true);
            var renamers = vm.GetRenamedObjects();

            // Assert
            Assert.AreEqual(1, renamers.First().Tables[0].Columns.Count);
            Assert.AreEqual(1, renamers.First().Tables[1].Columns.Count);
        }
Example #9
0
        public ObjectTreeController(ObjectTreeViewModel ViewModel, MainMenuViewModel MenuViewModel, IMessenger Messenger, IMapper Mapper)
        {
            viewModel     = ViewModel;
            menuViewModel = MenuViewModel;

            viewModel.ObjectTree = new ObservableCollection <ObjectTreeViewEntity>();

            messenger = Messenger;
            mapper    = Mapper;
        }
Example #10
0
        public void GetSelectedObjects_NoTables()
        {
            // Arrange
            var vm = new ObjectTreeViewModel(CreateSchemaInformationViewModelMockObject, CreateTableInformationViewModelMockObject, CreateColumnInformationViewModelMockObject);

            // Act
            var result = vm.GetSelectedObjects();

            // Assert
            Assert.IsNotNull(result);
            Assert.IsEmpty(result);
        }
Example #11
0
        public void SelectTables_EmptyCollection()
        {
            // Arrange
            var vm             = new ObjectTreeViewModel(CreateSchemaInformationViewModelMockObject, CreateTableInformationViewModelMockObject, CreateColumnInformationViewModelMockObject);
            var selectedTables = new SerializationTableModel[0];

            // Act
            vm.SelectObjects(selectedTables);

            // Assert
            Assert.IsEmpty(vm.GetSelectedObjects());
        }
Example #12
0
        public void AddObjects_EmptyCollection()
        {
            // Arrange
            var vm           = new ObjectTreeViewModel(CreateSchemaInformationViewModelMockObject, CreateTableInformationViewModelMockObject, CreateColumnInformationViewModelMockObject);
            var objectsToAdd = new TableModel[0];

            // Act
            vm.AddObjects(objectsToAdd, null);

            // Assert
            Assert.IsEmpty(vm.Types.SelectMany(t => t.Schemas));
        }
Example #13
0
        public void GetSelectedObjects_WithObjects_NoneSelected()
        {
            // Arrange
            var vm = new ObjectTreeViewModel(CreateTableInformationViewModelMockObject, CreateColumnInformationViewModelMockObject);

            vm.AddObjects(GetDatabaseObjects());

            // Act
            var result = vm.GetSelectedObjects();

            // Assert
            Assert.IsNotNull(result);
            Assert.IsEmpty(result);
        }
Example #14
0
        public void GetSelectionState_AllSelected()
        {
            // Arrange
            var vm = new ObjectTreeViewModel(CreateTableInformationViewModelMockObject, CreateColumnInformationViewModelMockObject);
            var databaseObjects = GetDatabaseObjects();

            vm.AddObjects(databaseObjects);

            //Act
            foreach (var item in vm.Types.SelectMany(c => c.Objects))
            {
                item.IsSelected = false;
            }

            //Assert
            Assert.IsFalse(vm.GetSelectionState());
        }
Example #15
0
        public void GetSelectionState_PartialSelection()
        {
            // Arrange
            var vm = new ObjectTreeViewModel(CreateSchemaInformationViewModelMockObject, CreateTableInformationViewModelMockObject, CreateColumnInformationViewModelMockObject);
            var databaseObjects = GetDatabaseObjects();

            vm.AddObjects(databaseObjects, null);

            //Act
            foreach (var item in vm.Types.SelectMany(c => c.Schemas).SelectMany(c => c.Objects).Take(1))
            {
                item.SetSelectedCommand.Execute(true);
            }

            //Assert
            Assert.IsNull(vm.GetSelectionState());
        }
Example #16
0
        public void SearchText_NoDirectFilter()
        {
            // Arrange
            var vm = new ObjectTreeViewModel(CreateSchemaInformationViewModelMockObject, CreateTableInformationViewModelMockObject, CreateColumnInformationViewModelMockObject);
            var databaseObjects = GetDatabaseObjects();

            vm.AddObjects(databaseObjects, null);
            var preFilter = vm.Types.SelectMany(c => c.Schemas).SelectMany(c => c.Objects);

            // Act
            vm.Search("ref", SearchMode.Text);

            // Assert
            Assert.AreEqual(databaseObjects.Length, preFilter.Count());
            var postFilter = vm.Types.SelectMany(c => c.Schemas).SelectMany(c => c.Objects).Where(c => c.IsVisible);

            Assert.AreEqual(2, postFilter.Count());
        }
Example #17
0
        public void SearchText_FilterAfterDelay()
        {
            // Arrange
            var vm = new ObjectTreeViewModel(CreateSchemaInformationViewModelMockObject, CreateTableInformationViewModelMockObject, CreateColumnInformationViewModelMockObject);
            var databaseObjects = GetDatabaseObjects();

            vm.AddObjects(databaseObjects, null);

            // Act
            vm.Search("ref", SearchMode.Text);

            // Assert
            Assert.That(() =>
            {
                var postFilter = vm.Types.SelectMany(c => c.Schemas).SelectMany(c => c.Objects).Where(c => c.IsVisible);
                return(postFilter.Count() < databaseObjects.Length && postFilter.All(m => m.Name.ToUpper().Contains("REF")));
            }, Is.True.After(1500, 200));
        }
Example #18
0
        public void AddObjects_Collection()
        {
            // Arrange
            var vm      = new ObjectTreeViewModel(CreateTableInformationViewModelMockObject, CreateColumnInformationViewModelMockObject);
            var objects = GetDatabaseObjects();

            // Act
            vm.AddObjects(objects);
            var vmobjects = vm.Types.SelectMany(t => t.Objects).ToArray();

            // Assert
            Assert.IsNotEmpty(vm.Types.SelectMany(t => t.Objects));
            Assert.AreEqual(objects.Length, vm.Types.SelectMany(t => t.Objects).Count());
            for (var i = 0; i < objects.Count(); i++)
            {
                AreObjectsEqual(objects[i], vmobjects[i]);
                Assert.IsFalse(vm.Types.SelectMany(t => t.Objects).ElementAt(i).IsSelected);
            }
        }
Example #19
0
        public void SetSelectionState([Values(true, false)] bool selected)
        {
            // Arrange
            var vm = new ObjectTreeViewModel(CreateSchemaInformationViewModelMockObject, CreateTableInformationViewModelMockObject, CreateColumnInformationViewModelMockObject);
            var databaseObjects = GetDatabaseObjects();

            vm.AddObjects(databaseObjects, null);

            //Act
            vm.SetSelectionState(selected);

            //Assert
            if (selected)
            {
                Assert.AreEqual(vm.GetSelectedObjects().Count(), databaseObjects.Length);
            }
            else
            {
                Assert.AreEqual(vm.GetSelectedObjects().Count(), 0);
            }
        }
Example #20
0
        public void GetSelectedObjects_WithObjects_PartialSelection()
        {
            // Arrange
            var vm = new ObjectTreeViewModel(CreateTableInformationViewModelMockObject, CreateColumnInformationViewModelMockObject);
            var databaseObjects = GetDatabaseObjects();

            vm.AddObjects(databaseObjects);
            foreach (var item in vm.Types.Where(c => c.Objects.Any()))
            {
                item.Objects.First().IsSelected = true;
            }

            // Act
            var result = vm.GetSelectedObjects().ToArray();

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(3, result.Length);
            Assert.AreEqual(databaseObjects.First(c => c.ObjectType == ObjectType.Table).Name, result[0].Name);
            Assert.AreEqual(databaseObjects.First(c => c.ObjectType == ObjectType.View).Name, result[1].Name);
            Assert.AreEqual(databaseObjects.First(c => c.ObjectType == ObjectType.Procedure).Name, result[2].Name);
        }
Example #21
0
        public void GetSelectedObjects_WithObjects_AllSelected()
        {
            // Arrange
            var vm = new ObjectTreeViewModel(CreateTableInformationViewModelMockObject, CreateColumnInformationViewModelMockObject);
            var databaseObjects = GetDatabaseObjects().ToArray();

            vm.AddObjects(databaseObjects);
            foreach (var item in vm.Types.SelectMany(c => c.Objects))
            {
                item.IsSelected = true;
            }

            // Act
            var result = vm.GetSelectedObjects().ToArray();

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(10, result.Count());
            for (var i = 0; i < result.Length; i++)
            {
                Assert.AreEqual(databaseObjects[i].Name, result[i].Name);
            }
        }