public void TestDefaultArguments()
        {
            var dacpacFile = $"Test_{Guid.NewGuid().ToString()}.dacpac";

            try
            {
                DatabaseHelper.DeployDacpac("Database1", _databaseName);
                var logger         = NullLogger.Instance;
                var modelFactory   = new ModelFactory(logger);
                var packageFactory = new PackageFactory(logger, modelFactory);
                var service        = new DacpacMergeService(logger, packageFactory, modelFactory);
                var inputFile      = string.Format(TestRunnerHelper.DacpacLocation, "Database3");
                File.Copy(inputFile, dacpacFile);

                service.Merge(dacpacFile, DatabaseHelper.DatabaseSource, _databaseName);

                using (var package = System.IO.Packaging.Package.Open(dacpacFile, FileMode.Open, FileAccess.Read))
                {
                    using (var reader = new StreamReader(package.GetPart(new Uri("/model.xml", UriKind.Relative)).GetStream(FileMode.Open), Encoding.UTF8))
                    {
                        reader.ReadToEnd().Should().Contain("<Element Type=\"SqlSchema\" Name=\"[SchemaB]\">");
                    }
                }
            }
            finally
            {
                File.Delete(dacpacFile);
            }
        }
Ejemplo n.º 2
0
        public void InputSchemasShouldGetObjectsForSpecificSchema()
        {
            const string source         = "MSSQL";
            const string name           = "TestDB";
            var          logger         = NullLogger.Instance;
            var          packageFactory = Substitute.For <IPackageFactory>();
            var          modelFactory   = Substitute.For <IModelFactory>();
            var          model          = Substitute.For <IModel>();

            modelFactory.Create(source, name).Returns(model);
            IDacpacMergeService cut = new DacpacMergeService(logger, packageFactory, modelFactory);

            cut.Merge("input.dacpac", source, name, new [] { "A", "B" }, "User", "output.dacpac");

            model.GetObjects(new [] { "A", "B" }, false).Received(1);
        }