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(); }
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); }
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); }