|
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.
|