示例#1
0
		public void AtCreationSetIdType()
		{
			var hbmMapping = new HbmMapping();
			var hbmAny = new HbmAny();
			new AnyMapper(null, typeof(int), hbmAny, hbmMapping);
			Assert.That(hbmAny.idtype, Is.EqualTo("Int32"));
		}
示例#2
0
		public void AtCreationSetIdType()
		{
			var hbmMapping = new HbmMapping();
			var hbmAny = new HbmAny();
			new AnyMapper(null, typeof(int), hbmAny, hbmMapping);
			hbmAny.idtype.Should().Be("Int32");
		}
 public void AutoCleanInvalidCascade()
 {
     var hbmMapping = new HbmMapping();
     var hbmAny = new HbmAny();
     var mapper = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);
     mapper.Cascade(Cascade.All | Cascade.DeleteOrphans);
     hbmAny.cascade.Should().Be("all");
 }
示例#4
0
		public void AtCreationSetTheTwoRequiredColumnsNodes()
		{
			var hbmMapping = new HbmMapping();
			var hbmAny = new HbmAny();
			new AnyMapper(null, typeof(int), hbmAny, hbmMapping);
			hbmAny.Columns.Should().Have.Count.EqualTo(2);
			hbmAny.Columns.Select(c => c.name).All(n => n.Satisfy(name => !string.IsNullOrEmpty(name)));
		}
示例#5
0
		public void CanSetIdTypeThroughType()
		{
			var hbmMapping = new HbmMapping();
			var hbmAny = new HbmAny();
			var mapper = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);
			mapper.IdType(typeof(long));
			hbmAny.idtype.Should().Be("Int64");
		}
示例#6
0
		public void CanSetMetaTypeThroughGenericMethod()
		{
			var hbmMapping = new HbmMapping();
			var hbmAny = new HbmAny();
			var mapper = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);
			mapper.MetaType<char>();
			Assert.That(hbmAny.MetaType, Is.EqualTo("Char"));
		}
示例#7
0
		public void CanSetMetaTypeThroughIType()
		{
			var hbmMapping = new HbmMapping();
			var hbmAny = new HbmAny();
			var mapper = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);
			mapper.MetaType(NHibernateUtil.Character);
			Assert.That(hbmAny.MetaType, Is.EqualTo("Char"));
		}
示例#8
0
		public void CanSetIdTypeThroughType()
		{
			var hbmMapping = new HbmMapping();
			var hbmAny = new HbmAny();
			var mapper = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);
			mapper.IdType(typeof(long));
			Assert.That(hbmAny.idtype, Is.EqualTo("Int64"));
		}
示例#9
0
		public void AtCreationSetTheTwoRequiredColumnsNodes()
		{
			var hbmMapping = new HbmMapping();
			var hbmAny = new HbmAny();
			new AnyMapper(null, typeof(int), hbmAny, hbmMapping);
			Assert.That(hbmAny.Columns.Count(), Is.EqualTo(2));
			Assert.That(hbmAny.Columns.All(c => !string.IsNullOrEmpty(c.name)), Is.True);
		}
 public void CanSetCascade()
 {
     var hbmMapping = new HbmMapping();
     var hbmAny = new HbmAny();
     var mapper = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);
     mapper.Cascade(Cascade.All);
     hbmAny.cascade.Should().Be("all");
 }
示例#11
0
		public void CanSetMetaTypeThroughGenericMethod()
		{
			var hbmMapping = new HbmMapping();
			var hbmAny = new HbmAny();
			var mapper = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);
			mapper.MetaType<char>();
			hbmAny.MetaType.Should().Be("Char");
		}
示例#12
0
		public void CanSetMetaTypeThroughIType()
		{
			var hbmMapping = new HbmMapping();
			var hbmAny = new HbmAny();
			var mapper = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);
			mapper.MetaType(NHibernateUtil.Character);
			hbmAny.MetaType.Should().Be("Char");
		}
 public void AtCreationSetColumnsUsingMemberName()
 {
     var member = typeof(MyClass).GetProperty("MyReferenceClass");
     var hbmMapping = new HbmMapping();
     var hbmAny = new HbmAny();
     new AnyMapper(member, typeof(int), hbmAny, hbmMapping);
     hbmAny.Columns.ElementAt(0).name.Should().Contain("MyReferenceClass");
     hbmAny.Columns.ElementAt(1).name.Should().Contain("MyReferenceClass");
 }
示例#14
0
		public void CanSetIndex()
		{
			var hbmMapping = new HbmMapping();
			var hbmAny = new HbmAny();
			var mapper = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);
			mapper.Index("pizza");
			hbmAny.index.Should().Be("pizza");
		}
示例#15
0
		public void WhenSetFirstMetaValueThenSetMetaTypeIfNotClass()
		{
			var hbmMapping = new HbmMapping();
			var hbmAny = new HbmAny();
			var mapper = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);
			mapper.MetaValue('A', typeof(MyReferenceClass));
			hbmAny.MetaType.Should().Be("Char");
		}
示例#16
0
		public void CanSetInsert()
		{
			var hbmMapping = new HbmMapping();
			var hbmAny = new HbmAny();
			var mapper = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);

			mapper.Insert(false);
			hbmAny.insert.Should().Be.False();
		}
示例#17
0
		public void CanSetLazy()
		{
			var hbmMapping = new HbmMapping();
			var hbmAny = new HbmAny();
			var mapper = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);
			mapper.Lazy(true);
			hbmAny.lazy.Should().Be(true);
		}
示例#18
0
		public void IdMetaTypeShouldBeImmutableAfterAddMetaValues()
		{
			var hbmMapping = new HbmMapping();
			var hbmAny = new HbmAny();
			var mapper = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);
			mapper.MetaValue('A', typeof(MyReferenceClass));
			Executing.This(() => mapper.IdType(NHibernateUtil.Int32)).Should().NotThrow();
			Executing.This(mapper.IdType<int>).Should().NotThrow();
			Executing.This(mapper.IdType<string>).Should().Throw<ArgumentException>();
			Executing.This(() => mapper.IdType(NHibernateUtil.String)).Should().Throw<ArgumentException>();
		}
示例#19
0
		public void CanSetUpdate()
		{
			var hbmMapping = new HbmMapping();
			var hbmAny = new HbmAny();
			var mapper = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);

			mapper.Update(false);
			hbmAny.update.Should().Be.False();
		}
示例#20
0
		public void WhenDuplicatedMetaValueWithDifferentTypeThenThrow()
		{
			var hbmMapping = new HbmMapping();
			var hbmAny = new HbmAny();
			var mapper = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);
			mapper.MetaValue('A', typeof(MyReferenceClass));
			Executing.This(() => mapper.MetaValue('A', typeof(MyClass))).Should().Throw<ArgumentException>();
		}
示例#21
0
		public void WhenSetTwoMetaValueThenHasTwoMetaValues()
		{
			var hbmMapping = new HbmMapping();
			var hbmAny = new HbmAny();
			var mapper = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);
			mapper.MetaValue('A', typeof(MyReferenceClass));
			mapper.MetaValue('B', typeof(MyClass));
			hbmAny.metavalue.Should().Have.Count.EqualTo(2);
			hbmAny.metavalue.Select(mv => mv.value).Should().Have.SameValuesAs("A", "B");
			hbmAny.metavalue.Select(mv => mv.@class).Satisfy(c => c.Any(clazz => clazz.Contains("MyReferenceClass")));
			hbmAny.metavalue.Select(mv => mv.@class).Satisfy(c => c.Any(clazz => clazz.Contains("MyClass")));
		}
示例#22
0
		public void WhenSetIdColumnPropertiesThenWorkOnSameHbmColumnCreatedAtCtor()
		{
			const int idColumnIndex = 1;
			var hbmMapping = new HbmMapping();
			var hbmAny = new HbmAny();
			var mapper = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);
			var columnsBefore = hbmAny.Columns.ToArray();
			mapper.Columns(idcm => idcm.Length(10), metacm => { });
			var columnsAfter = hbmAny.Columns.ToArray();
			columnsBefore[idColumnIndex].Should().Be.SameInstanceAs(columnsAfter[idColumnIndex]);
			columnsBefore[idColumnIndex].length.Should().Be("10");
		}
示例#23
0
		public void WhenDuplicatedMetaValueThenRegisterOne()
		{
			var hbmMapping = new HbmMapping();
			var hbmAny = new HbmAny();
			var mapper = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);
			mapper.MetaValue('A', typeof(MyReferenceClass));
			mapper.MetaValue('A', typeof(MyReferenceClass));
			hbmAny.metavalue.Should().Have.Count.EqualTo(1);
		}
示例#24
0
		public void WhenSetMetaColumnPropertiesThenWorkOnSameHbmColumnCreatedAtCtor()
		{
			// The first column in the mapping is the MetaValue
			const int metaValueColumnIndex = 0;
			var hbmMapping = new HbmMapping();
			var hbmAny = new HbmAny();
			var mapper = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);
			var columnsBefore = hbmAny.Columns.ToArray();
			mapper.Columns(idcm => { }, metacm => metacm.Length(500));
			var columnsAfter = hbmAny.Columns.ToArray();
			columnsBefore[metaValueColumnIndex].Should().Be.SameInstanceAs(columnsAfter[metaValueColumnIndex]);
			columnsBefore[metaValueColumnIndex].length.Should().Be("500");
		}
示例#25
0
		private void BindAnyProperty(HbmAny anyMapping, Property property)
		{
			property.Cascade = anyMapping.cascade ?? mappings.DefaultCascade;
			property.IsUpdateable = anyMapping.update;
			property.IsInsertable = anyMapping.insert;
		}
示例#26
0
		public void WhenNullParameterThenThrow()
		{
			var hbmMapping = new HbmMapping();
			var hbmAny = new HbmAny();
			var mapper = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);
			Executing.This(() => mapper.MetaValue(null, typeof(MyReferenceClass))).Should().Throw<ArgumentNullException>();
			Executing.This(() => mapper.MetaValue('A', null)).Should().Throw<ArgumentNullException>();
		}
 public void Any(MemberInfo property, Type idTypeOfMetaType, Action<IAnyMapper> mapping)
 {
     var hbm = new HbmAny { name = property.Name };
     mapping(new AnyMapper(property, idTypeOfMetaType, hbm, MapDoc));
     AddProperty(hbm);
 }
示例#28
0
		public void WhenSetMetaValueWithClassThenThrow()
		{
			var hbmMapping = new HbmMapping();
			var hbmAny = new HbmAny();
			var mapper = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);
			Executing.This(() => mapper.MetaValue(typeof(MyReferenceClass), typeof(MyReferenceClass))).Should().Throw<ArgumentOutOfRangeException>();
		}
		protected void BindAny(HbmAny node, Any model, bool isNullable)
		{
			model.IdentifierTypeName = node.idtype;
			new TypeBinder(model, Mappings).Bind(node.idtype);

			BindAnyMeta(node, model);

			new ColumnsBinder(model, Mappings).Bind(node.Columns, isNullable, null);
		}
示例#30
0
		public void WhenSetSecondMetaValueThenCheckCompatibility()
		{
			var hbmMapping = new HbmMapping();
			var hbmAny = new HbmAny();
			var mapper = new AnyMapper(null, typeof(int), hbmAny, hbmMapping);
			mapper.MetaValue('A', typeof(MyReferenceClass));
			Executing.This(() => mapper.MetaValue(5, typeof(MyClass))).Should().Throw<ArgumentException>();
		}