Ejemplo n.º 1
0
        public SqlServerFixture()
        {
            this.config       = new SqlServerConfiguration();
            this.DatabaseName = "DashingIntegration_" + Guid.NewGuid().ToString("D").Substring(0, 8);

            // load the data
            using (var transactionLessSession = this.config.BeginTransactionLessSession()) {
                var dialect  = new SqlServer2012Dialect();
                var migrator = new Migrator(
                    dialect,
                    new CreateTableWriter(dialect),
                    new AlterTableWriter(dialect),
                    new DropTableWriter(dialect),
                    new StatisticsProvider(null, dialect));
                IEnumerable <string> warnings, errors;
                var createStatement = migrator.GenerateSqlDiff(
                    new List <IMap>(),
                    this.config.Maps,
                    null,
                    new Mock <ILogger>().Object,
                    new string[0],
                    out warnings,
                    out errors);
                transactionLessSession.Dapper.Execute("create database " + this.DatabaseName);
                transactionLessSession.Dapper.Execute("use " + this.DatabaseName);
                transactionLessSession.Dapper.Execute(createStatement);
            }

            this.Session = this.config.BeginSession();
            this.Session.Dapper.Execute("use " + this.DatabaseName);
            this.InsertData();
        }
Ejemplo n.º 2
0
        public void DropSelfReferencedWorks()
        {
            var configTo   = new CustomConfig();
            var configFrom = new CustomConfig();

            // remove onetooneleft from the config
            var mappedTypes =
                (IDictionary <Type, IMap>)
                typeof(ConfigurationBase).GetField("mappedTypes", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(configTo);

            mappedTypes.Remove(typeof(Pair));

            var dialect  = new SqlServer2012Dialect();
            var migrator = new Migrator(
                dialect,
                new CreateTableWriter(dialect),
                new AlterTableWriter(dialect),
                new DropTableWriter(dialect),
                GetMockStatisticsProvider(configFrom));
            IEnumerable <string> warnings;
            IEnumerable <string> errors;
            var script = migrator.GenerateSqlDiff(
                configFrom.Maps,
                configTo.Maps,
                null,
                new Mock <ILogger>().Object,
                new string[0],
                new string[0],
                out warnings,
                out errors);

            Assert.Equal(@"drop table [Pairs];", script.Trim());
        }
        public void OrderAcrossOneToOneWorks()
        {
            var query                    = new SelectQuery <OneToOneLeft>(new NonExecutingSelectQueryExecutor()).Fetch(o => o.Right).OrderBy(o => o.Right.Name);
            var config                   = new OneToOneConfig();
            var dialect                  = new SqlServer2012Dialect();
            var writer                   = new OrderClauseWriter(config, dialect);
            var fetchTreeWriter          = new FetchTreeWriter(dialect, config);
            var containsPrimaryKeyClause = false;
            var result                   = writer.GetOrderClause(
                ((SelectQuery <OneToOneLeft>)query).OrderClauses.Dequeue(),
                fetchTreeWriter.GetFetchTree((SelectQuery <OneToOneLeft>)query),
                out containsPrimaryKeyClause);

            Assert.Equal("t_1.[Name] asc", result);
        }
Ejemplo n.º 4
0
        public void DropOneToOneRightTable()
        {
            var configTo   = new CustomConfig();
            var configFrom = new CustomConfig();

            // remove onetooneleft from the config
            var mappedTypes =
                (IDictionary <Type, IMap>)
                typeof(ConfigurationBase).GetField("mappedTypes", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(configTo);

            mappedTypes.Remove(typeof(OneToOneRight));
            configTo.GetMap <OneToOneLeft>().Columns.Remove("Right");

            var dialect  = new SqlServer2012Dialect();
            var migrator = new Migrator(
                dialect,
                new CreateTableWriter(dialect),
                new AlterTableWriter(dialect),
                new DropTableWriter(dialect),
                GetMockStatisticsProvider(configFrom));
            IEnumerable <string> warnings;
            IEnumerable <string> errors;
            var script = migrator.GenerateSqlDiff(
                configFrom.Maps,
                configTo.Maps,
                null,
                new Mock <ILogger>().Object,
                new string[0],
                new string[0],
                out warnings,
                out errors);

            var dropColIdx   = script.IndexOf("alter table [OneToOneLefts] drop column [RightId];", StringComparison.Ordinal);
            var dropTableIdx = script.IndexOf("drop table [OneToOneRights];", StringComparison.Ordinal);

            Assert.True(dropColIdx > -1);
            Assert.True(dropTableIdx > -1);
            Assert.True(dropColIdx < dropTableIdx);
        }