From: <fab...@us...> - 2011-04-04 17:28:00
|
Revision: 5602 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5602&view=rev Author: fabiomaulo Date: 2011-04-04 17:27:54 +0000 (Mon, 04 Apr 2011) Log Message: ----------- JoinMapper more methods Modified Paths: -------------- trunk/nhibernate/src/NHibernate/Mapping/ByCode/FetchMode.cs trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/JoinMapper.cs trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/JoinMapperTests.cs Modified: trunk/nhibernate/src/NHibernate/Mapping/ByCode/FetchMode.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Mapping/ByCode/FetchMode.cs 2011-04-04 17:05:30 UTC (rev 5601) +++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/FetchMode.cs 2011-04-04 17:27:54 UTC (rev 5602) @@ -8,6 +8,7 @@ public static FetchMode Join = new JoinFetchMode(); public abstract HbmFetchMode ToHbm(); + public abstract HbmJoinFetch ToHbmJoinFetch(); #region Nested type: JoinFetchMode @@ -17,6 +18,11 @@ { return HbmFetchMode.Join; } + + public override HbmJoinFetch ToHbmJoinFetch() + { + return HbmJoinFetch.Join; + } } #endregion @@ -29,6 +35,11 @@ { return HbmFetchMode.Select; } + + public override HbmJoinFetch ToHbmJoinFetch() + { + return HbmJoinFetch.Select; + } } #endregion Modified: trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/JoinMapper.cs =================================================================== --- trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/JoinMapper.cs 2011-04-04 17:05:30 UTC (rev 5601) +++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/JoinMapper.cs 2011-04-04 17:27:54 UTC (rev 5602) @@ -39,7 +39,7 @@ public event TableNameChangedHandler TableNameChanged; - public void InvokeTableNameChanged(TableNameChangedEventArgs e) + private void InvokeTableNameChanged(TableNameChangedEventArgs e) { TableNameChangedHandler handler = TableNameChanged; if (handler != null) @@ -59,18 +59,38 @@ public void SqlInsert(string sql) { + if (hbmJoin.SqlInsert == null) + { + hbmJoin.sqlinsert = new HbmCustomSQL(); + } + hbmJoin.sqlinsert.Text = new[] { sql }; } public void SqlUpdate(string sql) { + if (hbmJoin.SqlUpdate == null) + { + hbmJoin.sqlupdate = new HbmCustomSQL(); + } + hbmJoin.sqlupdate.Text = new[] { sql }; } public void SqlDelete(string sql) { + if (hbmJoin.SqlDelete == null) + { + hbmJoin.sqldelete = new HbmCustomSQL(); + } + hbmJoin.sqldelete.Text = new[] { sql }; } public void Subselect(string sql) { + if (hbmJoin.Subselect == null) + { + hbmJoin.subselect = new HbmSubselect(); + } + hbmJoin.subselect.Text = new[] { sql }; } public void Table(string tableName) @@ -95,10 +115,12 @@ public void Catalog(string catalogName) { + hbmJoin.catalog = catalogName; } public void Schema(string schemaName) { + hbmJoin.schema = schemaName; } public void Key(Action<IKeyMapper> keyMapping) @@ -107,14 +129,17 @@ public void Inverse(bool value) { + hbmJoin.inverse = value; } public void Optional(bool isOptional) { + hbmJoin.optional = isOptional; } public void Fetch(FetchMode fetchMode) { + hbmJoin.fetch = fetchMode.ToHbmJoinFetch(); } } } \ No newline at end of file Modified: trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/JoinMapperTests.cs =================================================================== --- trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/JoinMapperTests.cs 2011-04-04 17:05:30 UTC (rev 5601) +++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/MappersTests/JoinMapperTests.cs 2011-04-04 17:27:54 UTC (rev 5602) @@ -77,5 +77,103 @@ mapper.Table(" Pizza "); eventCalled.Should().Be.True(); } + + [Test] + public void CanSetCatalog() + { + var mapdoc = new HbmMapping(); + var hbmJoin = new HbmJoin(); + var mapper = new JoinMapper(typeof(MyClass), "AA", hbmJoin, mapdoc); + mapper.Catalog("pizza"); + hbmJoin.catalog.Should().Be("pizza"); + } + + [Test] + public void CanSetSchema() + { + var mapdoc = new HbmMapping(); + var hbmJoin = new HbmJoin(); + var mapper = new JoinMapper(typeof(MyClass), "AA", hbmJoin, mapdoc); + mapper.Schema("pizza"); + hbmJoin.schema.Should().Be("pizza"); + } + + [Test] + public void CanSetSqlInsert() + { + var mapdoc = new HbmMapping(); + var hbmJoin = new HbmJoin(); + var mapper = new JoinMapper(typeof(MyClass), "AA", hbmJoin, mapdoc); + mapper.SqlInsert("blah"); + + hbmJoin.SqlInsert.Should().Not.Be.Null(); + hbmJoin.SqlInsert.Text[0].Should().Be("blah"); + } + + [Test] + public void SetSqlUpdate() + { + var mapdoc = new HbmMapping(); + var hbmJoin = new HbmJoin(); + var mapper = new JoinMapper(typeof(MyClass), "AA", hbmJoin, mapdoc); + mapper.SqlUpdate("blah"); + + hbmJoin.SqlUpdate.Should().Not.Be.Null(); + hbmJoin.SqlUpdate.Text[0].Should().Be("blah"); + } + + [Test] + public void SetSqlDelete() + { + var mapdoc = new HbmMapping(); + var hbmJoin = new HbmJoin(); + var mapper = new JoinMapper(typeof(MyClass), "AA", hbmJoin, mapdoc); + mapper.SqlDelete("blah"); + + hbmJoin.SqlDelete.Should().Not.Be.Null(); + hbmJoin.SqlDelete.Text[0].Should().Be("blah"); + } + + [Test] + public void CanSetSqlSubselect() + { + var mapdoc = new HbmMapping(); + var hbmJoin = new HbmJoin(); + var mapper = new JoinMapper(typeof(MyClass), "AA", hbmJoin, mapdoc); + mapper.Subselect("blah"); + + hbmJoin.Subselect.Should().Not.Be.Null(); + hbmJoin.subselect.Text[0].Should().Be("blah"); + } + + [Test] + public void CanSetInverse() + { + var mapdoc = new HbmMapping(); + var hbmJoin = new HbmJoin(); + var mapper = new JoinMapper(typeof(MyClass), "AA", hbmJoin, mapdoc); + mapper.Inverse(true); + hbmJoin.inverse.Should().Be.True(); + } + + [Test] + public void CanSetOptional() + { + var mapdoc = new HbmMapping(); + var hbmJoin = new HbmJoin(); + var mapper = new JoinMapper(typeof(MyClass), "AA", hbmJoin, mapdoc); + mapper.Optional(true); + hbmJoin.optional.Should().Be.True(); + } + + [Test] + public void CanSetFetch() + { + var mapdoc = new HbmMapping(); + var hbmJoin = new HbmJoin(); + var mapper = new JoinMapper(typeof(MyClass), "AA", hbmJoin, mapdoc); + mapper.Fetch(Mapping.ByCode.FetchMode.Select); + hbmJoin.fetch.Should().Be(HbmJoinFetch.Select); + } } } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |