From: <fab...@us...> - 2008-12-16 15:39:43
|
Revision: 3956 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3956&view=rev Author: fabiomaulo Date: 2008-12-16 15:39:36 +0000 (Tue, 16 Dec 2008) Log Message: ----------- - Fixed problem with NH-1593 test - starting fix NH-1613 Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Tool/hbm2ddl/SchemaUpdate.cs trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1593/Fixture.cs Modified: trunk/nhibernate/src/NHibernate/Tool/hbm2ddl/SchemaUpdate.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Tool/hbm2ddl/SchemaUpdate.cs 2008-12-16 04:26:06 UTC (rev 3955) +++ trunk/nhibernate/src/NHibernate/Tool/hbm2ddl/SchemaUpdate.cs 2008-12-16 15:39:36 UTC (rev 3956) @@ -11,7 +11,7 @@ public class SchemaUpdate { - private static readonly ILog log = LogManager.GetLogger(typeof (SchemaUpdate)); + private static readonly ILog log = LogManager.GetLogger(typeof(SchemaUpdate)); private readonly IConnectionHelper connectionHelper; private readonly Configuration configuration; private readonly Dialect.Dialect dialect; @@ -80,7 +80,7 @@ else if (args[i].StartsWith("--naming=")) { cfg.SetNamingStrategy( - (INamingStrategy) Activator.CreateInstance(ReflectHelper.ClassForName(args[i].Substring(9))) + (INamingStrategy)Activator.CreateInstance(ReflectHelper.ClassForName(args[i].Substring(9))) ); } } @@ -112,6 +112,23 @@ /// </summary> public void Execute(bool script, bool doUpdate) { + if (script) + { + Execute(Console.WriteLine, doUpdate); + } + else + { + Execute(null, doUpdate); + } + } + + /// <summary> + /// Execute the schema updates + /// </summary> + /// <param name="scriptAction">The action to write the each schema line.</param> + /// <param name="doUpdate">Commit the script to DB</param> + public void Execute(Action<string> scriptAction, bool doUpdate) + { log.Info("Running hbm2ddl schema update"); DbConnection connection; @@ -145,9 +162,9 @@ string sql = createSQL[j]; try { - if (script) + if (scriptAction != null) { - Console.WriteLine(sql); + scriptAction(sql); } if (doUpdate) { Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1593/Fixture.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1593/Fixture.cs 2008-12-16 04:26:06 UTC (rev 3955) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1593/Fixture.cs 2008-12-16 15:39:36 UTC (rev 3956) @@ -1,13 +1,9 @@ -using System.Collections; -using System.Data.Common; -using System.Data.SqlClient; -using System.Reflection; - +using System.Text; using NHibernate.Cfg; -using NHibernate.Dialect; using NHibernate.Tool.hbm2ddl; using NUnit.Framework; +using NUnit.Framework.SyntaxHelpers; namespace NHibernate.Test.NHSpecificTest.NH1593 { @@ -17,35 +13,12 @@ [Test] public void SchemaUpdateAddsIndexesThatWerentPresentYet() { - Configuration cfg = new Configuration(); - Assembly assembly = Assembly.GetExecutingAssembly(); - cfg.AddResource("NHibernate.Test.NHSpecificTest.NH1593.TestIndex.hbm.xml", assembly); - cfg.Configure(); - - // TODO: rewrite this so we don't need to open a session just to get a reference to a DbConnection (because that's the only reason the Session is used) - var sessionFactory = cfg.BuildSessionFactory(); - using (ISession session = sessionFactory.OpenSession()) - { - MsSql2005Dialect dialect = new MsSql2005Dialect(); - - DatabaseMetadata databaseMetaData = new DatabaseMetadata((DbConnection)session.Connection, dialect); - string[] script = cfg.GenerateSchemaUpdateScript(dialect, databaseMetaData); - - Assert.That(ScriptContainsIndexCreationLine(script)); - } + Configuration cfg = TestConfigurationHelper.GetDefaultConfiguration(); + cfg.AddResource("NHibernate.Test.NHSpecificTest.NH1593.TestIndex.hbm.xml", GetType().Assembly); + var su = new SchemaUpdate(cfg); + var sb = new StringBuilder(500); + su.Execute(x => sb.AppendLine(x), false); + Assert.That(sb.ToString(), Text.Contains("create index test_index_name on TestIndex (Name)")); } - - private bool ScriptContainsIndexCreationLine(string[] script) - { - foreach (string s in script) - { - if (s.Equals("create index test_index_name on TestIndex (Name)")) - { - return true; - } - } - - return false; - } } } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |