From: <fab...@us...> - 2010-09-25 18:06:20
|
Revision: 5218 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5218&view=rev Author: fabiomaulo Date: 2010-09-25 18:06:13 +0000 (Sat, 25 Sep 2010) Log Message: ----------- Fix NH-2188 Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2188/ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2188/AppDomainWithMultipleSearchPath.cs Modified: trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs 2010-09-25 15:47:16 UTC (rev 5217) +++ trunk/nhibernate/src/NHibernate/Cfg/Configuration.cs 2010-09-25 18:06:13 UTC (rev 5218) @@ -4,6 +4,7 @@ using System.Configuration; using System.Diagnostics; using System.IO; +using System.Linq; using System.Reflection; using System.Text; using System.Xml; @@ -1837,11 +1838,11 @@ LogAndThrow(new MappingException(message, args.Exception)); } - private static string GetDefaultConfigurationFilePath() + protected virtual string GetDefaultConfigurationFilePath() { string baseDir = AppDomain.CurrentDomain.BaseDirectory; - string relativeSearchPath = AppDomain.CurrentDomain.RelativeSearchPath; - string binPath = relativeSearchPath == null ? baseDir : Path.Combine(baseDir, relativeSearchPath); + string relativeSearchPath = AppDomain.CurrentDomain.RelativeSearchPath.Split(';').First(); + string binPath = Path.Combine(baseDir, relativeSearchPath); return Path.Combine(binPath, DefaultHibernateCfgFileName); } Added: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2188/AppDomainWithMultipleSearchPath.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2188/AppDomainWithMultipleSearchPath.cs (rev 0) +++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/NH2188/AppDomainWithMultipleSearchPath.cs 2010-09-25 18:06:13 UTC (rev 5218) @@ -0,0 +1,37 @@ +using System; +using System.IO; +using NHibernate.Cfg; +using NUnit.Framework; +using SharpTestsEx; + +namespace NHibernate.Test.NHSpecificTest.NH2188 +{ + public class AppDomainWithMultipleSearchPath + { + public class MyNhConfiguration: Configuration + { + public string DefaultConfigurationFilePath() + { + return GetDefaultConfigurationFilePath(); + } + } + [Test] + public void WhenSerchInMultiplePathsThenNotThrows() + { + string binPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "bin"); + var expected = Path.Combine(binPath, Configuration.DefaultHibernateCfgFileName); + + try + { + AppDomain.CurrentDomain.AppendPrivatePath("bin"); + AppDomain.CurrentDomain.AppendPrivatePath("DbScripts"); + var configuration = new MyNhConfiguration(); + configuration.DefaultConfigurationFilePath().Should().Be(expected); + } + finally + { + AppDomain.CurrentDomain.ClearPrivatePath(); + } + } + } +} \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-09-25 15:47:16 UTC (rev 5217) +++ trunk/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2010-09-25 18:06:13 UTC (rev 5218) @@ -473,6 +473,7 @@ <Compile Include="NHSpecificTest\NH2147\DefaultBatchSize.cs" /> <Compile Include="NHSpecificTest\NH2148\BugFixture.cs" /> <Compile Include="NHSpecificTest\NH2148\Domain.cs" /> + <Compile Include="NHSpecificTest\NH2188\AppDomainWithMultipleSearchPath.cs" /> <Compile Include="NHSpecificTest\NH2224\Domain.cs" /> <Compile Include="NHSpecificTest\NH2224\Fixture.cs" /> <Compile Include="NHSpecificTest\NH2245\Fixture.cs" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |