Example #1
0
        public void Finds_Schemas()
        {
            var projectList = new List<ProjectDescriptor>();
            var project = new ProjectDescriptor();
            const string projectName = "abcdef";
            project.Name = projectName;
            const string path = "c:\\dac.dacpac";
            project.DacPath = path;

            projectList.Add(project);

            var enumerator = new Mock<ProjectEnumerator>();
            enumerator.Setup(p => p.EnumerateProjects()).Returns(projectList);

            var tables = new List<ITable>();
            tables.Add(new Table() { SchemaName = "one", Name = "table" });
            tables.Add(new Table() { SchemaName = "one", Name = "table2" });
            tables.Add(new Table() { SchemaName = "two", Name = "table" });

            var parser = new Mock<DacParser>();
            parser.Setup(p => p.PreDeployScript).Returns(() => null);
            parser.Setup(p => p.PostDeployScript).Returns(() => null);
            parser.Setup(p => p.GetTableDefinitions()).Returns(tables);

            var parserBuilder = new Mock<DacParserBuilder>();
            parserBuilder.Setup(p => p.Build(path)).Returns(parser.Object);

            var solution = new SolutionParser(enumerator.Object, parserBuilder.Object, new DummyStatus());
            var actualProject = solution.GetProject(projectName);
            Assert.AreEqual(2, actualProject.GetSchemas().Count);
        }
Example #2
0
        public void Finds_Can_Add_Tables_After_Initial_Load()
        {
            var projectList = new List<ProjectDescriptor>();
            var project = new ProjectDescriptor();
            const string projectName = "abcdef";
            project.Name = projectName;
            const string path = "c:\\dac.dacpac";
            project.DacPath = path;

            projectList.Add(project);

            var enumerator = new Mock<ProjectEnumerator>();
            enumerator.Setup(p => p.EnumerateProjects()).Returns(projectList);

            var tables = new List<ITable>();
            tables.Add(new Table(){Name = "oooh", SchemaName = "dbo"});

            var parser = new Mock<DacParser>();
            parser.Setup(p => p.PreDeployScript).Returns(() => null);
            parser.Setup(p => p.PostDeployScript).Returns(() => null);
            parser.Setup(p => p.GetTableDefinitions()).Returns(tables);

            var parserBuilder = new Mock<DacParserBuilder>();
            parserBuilder.Setup(p => p.Build(path)).Returns(parser.Object);

            var solution = new SolutionParser(enumerator.Object, parserBuilder.Object, new DummyStatus());
            var schema = solution.GetProject("abcdef").GetSchema("dbo");
            Assert.AreEqual(1, schema.GetTables().Count);

            solution.AddTable("abcdef", "dbo", "erm", new Table() { Name = "erm", SchemaName = "dbo" });
            Assert.AreEqual(2, schema.GetTables().Count);
            var table = solution.GetTable("abcdef", "dbo", "erm");
            Assert.IsNotNull(table);
        }
Example #3
0
        private void Populate_OnClick(object sender, RoutedEventArgs e)
        {
            var cursor = Cursors.Arrow;

            Dispatcher.Invoke(() =>
            {
                cursor = Cursor;
                Cursor = Cursors.Wait;
            });

            ClearAll();

            _solution = new SolutionParser(new ProjectEnumerator(), new DacParserBuilder(), this);

            Dispatcher.Invoke(() =>
            {
                Projects.ItemsSource = _solution.GetProjects();
                Cursor = cursor;
                Populate.IsEnabled = true;
            });
        }