|
From: <fab...@us...> - 2011-04-27 20:51:49
|
Revision: 5776
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5776&view=rev
Author: fabiomaulo
Date: 2011-04-27 20:51:43 +0000 (Wed, 27 Apr 2011)
Log Message:
-----------
Minor fix (cleaned mapping when empty natural-id is defined)
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/ClassMapper.cs
trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/NaturalIdMapper.cs
trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/ComposedIdTests.cs
trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/NaturalIdTests.cs
Modified: trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/ClassMapper.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/ClassMapper.cs 2011-04-27 18:54:47 UTC (rev 5775)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/ClassMapper.cs 2011-04-27 20:51:43 UTC (rev 5776)
@@ -196,9 +196,7 @@
{
if (naturalIdMapper == null)
{
- var hbmNaturalId = new HbmNaturalId();
- classMapping.naturalid = hbmNaturalId;
- naturalIdMapper = new NaturalIdMapper(Container, hbmNaturalId, MapDoc);
+ naturalIdMapper = new NaturalIdMapper(Container, classMapping, MapDoc);
}
naturalIdMapping(naturalIdMapper);
}
Modified: trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/NaturalIdMapper.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/NaturalIdMapper.cs 2011-04-27 18:54:47 UTC (rev 5775)
+++ trunk/nhibernate/src/NHibernate/Mapping/ByCode/Impl/NaturalIdMapper.cs 2011-04-27 20:51:43 UTC (rev 5776)
@@ -6,11 +6,17 @@
{
public class NaturalIdMapper : AbstractBasePropertyContainerMapper, INaturalIdMapper
{
+ private readonly HbmClass classMapping;
private readonly HbmNaturalId naturalIdmapping;
- public NaturalIdMapper(System.Type rootClass, HbmNaturalId naturalIdmapping, HbmMapping mapDoc) : base(rootClass, mapDoc)
+ public NaturalIdMapper(System.Type rootClass, HbmClass classMapping, HbmMapping mapDoc) : base(rootClass, mapDoc)
{
- this.naturalIdmapping = naturalIdmapping;
+ if (classMapping == null)
+ {
+ throw new ArgumentNullException("classMapping");
+ }
+ this.classMapping = classMapping;
+ naturalIdmapping = new HbmNaturalId();
}
#region Overrides of AbstractBasePropertyContainerMapper
@@ -21,6 +27,10 @@
{
throw new ArgumentNullException("property");
}
+ if(classMapping.naturalid == null)
+ {
+ classMapping.naturalid = naturalIdmapping;
+ }
var toAdd = new[] {property};
naturalIdmapping.Items = naturalIdmapping.Items == null ? toAdd : naturalIdmapping.Items.Concat(toAdd).ToArray();
}
Modified: trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/ComposedIdTests.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/ComposedIdTests.cs 2011-04-27 18:54:47 UTC (rev 5775)
+++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/ComposedIdTests.cs 2011-04-27 20:51:43 UTC (rev 5776)
@@ -109,10 +109,7 @@
HbmClass hbmClass = hbmMapping.RootClasses[0];
HbmCompositeId hbmCompositId = hbmClass.CompositeId;
hbmCompositId.Items.Should().Have.Count.EqualTo(2);
- if(hbmClass.naturalid != null)
- {
- hbmClass.naturalid.Items.Should().Be.Null();
- }
+ hbmClass.naturalid.Should().Be.Null();
hbmClass.Properties.Should().Be.Empty();
}
}
Modified: trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/NaturalIdTests.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/NaturalIdTests.cs 2011-04-27 18:54:47 UTC (rev 5775)
+++ trunk/nhibernate/src/NHibernate.Test/MappingByCode/ExpliticMappingTests/NaturalIdTests.cs 2011-04-27 20:51:43 UTC (rev 5776)
@@ -27,7 +27,7 @@
}
[Test]
- public void WhenDefineRootEntityThenRegister()
+ public void WhenDefineNaturalIdThenRegister()
{
var inspector = new ExplicitlyDeclaredModel();
var mapper = new ModelMapper(inspector);
@@ -51,5 +51,19 @@
inspector.IsMemberOfNaturalId(For<MyClass>.Property(x => x.MyComponent)).Should().Be.True();
inspector.IsMemberOfNaturalId(For<MyClass>.Property(x => x.Any)).Should().Be.True();
}
+
+ [Test]
+ public void WhenDefineEmptyNaturalIdThenNoMapIt()
+ {
+ var mapper = new ModelMapper();
+ mapper.Class<MyClass>(map =>
+ {
+ map.Id(x => x.Id, idmap => { });
+ map.NaturalId(nidm =>{});
+ });
+ var hbmMapping = mapper.CompileMappingFor(new[] { typeof(MyClass) });
+ var hbmClass = hbmMapping.RootClasses[0];
+ hbmClass.naturalid.Should().Be.Null();
+ }
}
}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|