public void SetCollectionTypeByGenericType()
 {
     var hbm = new HbmSet();
     var mapper = new SetMapper(typeof(Animal), typeof(Animal), hbm);
     mapper.Type<FakeUserCollectionType>();
     hbm.CollectionType.Should().Contain("FakeUserCollectionType");
 }
 public void SetBatchSize()
 {
     var hbm = new HbmSet();
     var mapper = new SetMapper(typeof(Animal), typeof(Animal), hbm);
     mapper.BatchSize(10);
     hbm.BatchSize.Should().Be.EqualTo(10);
 }
		public virtual void Set(MemberInfo property, Action<ISetPropertiesMapper> collectionMapping, Action<ICollectionElementRelation> mapping)
		{
			var hbm = new HbmSet {name = property.Name};
			System.Type collectionElementType = property.DetermineRequiredCollectionElementType();
			collectionMapping(new SetMapper(container, collectionElementType, hbm));
			mapping(new CollectionElementRelation(collectionElementType, MapDoc, rel => hbm.Item = rel));
			AddProperty(hbm);
		}
		private Mapping.Collection CreateSet(HbmSet setMapping, string prefix, string path,
			PersistentClass owner, System.Type containingType, IDictionary<string, MetaAttribute> inheritedMetas)
		{
			var setCollection = new Set(owner);
			BindCollection(setMapping, setCollection, prefix, path, containingType, inheritedMetas);
			AddSetSecondPass(setMapping, setCollection, inheritedMetas);
			return setCollection;
		}
 public void CanSetAFilterThroughAction()
 {
     var hbm = new HbmSet();
     var mapper = new SetMapper(typeof(Animal), typeof(Animal), hbm);
     mapper.Filter("filter1", f => f.Condition("condition1"));
     hbm.filter.Length.Should().Be(1);
     hbm.filter[0].Satisfy(f => f.name == "filter1" && f.condition == "condition1");
 }
        public void CanChangeAccessor()
        {
            var hbm = new HbmSet { name = "Children" };
            var mapper = new SetMapper(typeof(Animal), typeof(Animal), hbm);
            mapper.Access(Accessor.Field);

            hbm.Access.Should().Not.Be.Null();
        }
        public void CanSetCache()
        {
            var hbm = new HbmSet();
            var mapper = new SetMapper(typeof(Animal), typeof(Animal), hbm);
            mapper.Cache(x => x.Region("pizza"));

            hbm.cache.Should().Not.Be.Null();
        }
 public void CallKeyMapper()
 {
     var hbm = new HbmSet();
     var mapper = new SetMapper(typeof(Animal), typeof(Animal), hbm);
     bool kmCalled = false;
     mapper.Key(km => kmCalled = true);
     hbm.Key.Should().Not.Be.Null();
     kmCalled.Should().Be.True();
 }
 public void Should_get_null_given_key_is_null()
 {
     HbmSet set = new HbmSet
         {
             key = null
         };
     bool? result = set.IsUnique();
     result.ShouldBeNull();
 }
 public void Should_get__true__given_inverse_is_true()
 {
     HbmSet set = new HbmSet
         {
             inverse = true
         };
     bool? result = set.CanBeNull();
     result.ShouldNotBeNull();
     result.Value.ShouldBeTrue();
 }
 public void Should_get_null_given_key_uniqueSpecified_is_false()
 {
     HbmSet set = new HbmSet
         {
             key = new HbmKey
                 {
                     uniqueSpecified = false,
                     unique = true
                 }
         };
     bool? result = set.IsUnique();
     result.ShouldBeNull();
 }
 public void Should_get__false__given_key_uniqueSpecified_is_true_and_unique_is_false()
 {
     HbmSet set = new HbmSet
         {
             key = new HbmKey
                 {
                     uniqueSpecified = true,
                     unique = false
                 }
         };
     bool? result = set.IsUnique();
     result.ShouldNotBeNull();
     result.Value.ShouldBeFalse();
 }
 public void SetFetchMode()
 {
     var hbm = new HbmSet();
     var mapper = new SetMapper(typeof(Animal), typeof(Animal), hbm);
     mapper.Fetch(CollectionFetchMode.Subselect);
     hbm.fetch.Should().Be(HbmCollectionFetchMode.Subselect);
     hbm.fetchSpecified.Should().Be.True();
     mapper.Fetch(CollectionFetchMode.Join);
     hbm.fetch.Should().Be(HbmCollectionFetchMode.Join);
     hbm.fetchSpecified.Should().Be.True();
     mapper.Fetch(CollectionFetchMode.Select);
     hbm.fetch.Should().Be(HbmCollectionFetchMode.Select);
     hbm.fetchSpecified.Should().Be.False();
 }
 public void SetWhere()
 {
     var hbm = new HbmSet();
     var mapper = new SetMapper(typeof(Animal), typeof(Animal), hbm);
     mapper.Where("c > 10");
     hbm.Where.Should().Be.EqualTo("c > 10");
 }
 public void WhenActionIsNullThenAddFilterName()
 {
     var hbm = new HbmSet();
     var mapper = new SetMapper(typeof(Animal), typeof(Animal), hbm);
     mapper.Filter("filter1", null);
     hbm.filter.Length.Should().Be(1);
     hbm.filter[0].Satisfy(f => f.name == "filter1" && f.condition == null);
 }
 public void Should_get_the_correct_value()
 {
     const string expected = "System.String";
     HbmSet set = new HbmSet
         {
             Item = new HbmOneToMany
                 {
                     @class = expected + ", mscorlib"
                 }
         };
     string result = set.GetReturnType();
     result.ShouldBeEqualTo(expected);
 }
 public void Should_get_the_correct_value()
 {
     const string expected = "FirstName";
     HbmSet set = new HbmSet
         {
             name = expected
         };
     string result = set.GetPropertyName();
     result.ShouldBeEqualTo(expected);
 }
 public void SetSort()
 {
     var hbm = new HbmSet();
     var mapper = new SetMapper(typeof(Animal), typeof(Animal), hbm);
     mapper.Sort();
     hbm.Sort.Should().Be.EqualTo("natural");
 }
 public void WhenSameNameThenOverrideCondition()
 {
     var hbm = new HbmSet();
     var mapper = new SetMapper(typeof(Animal), typeof(Animal), hbm);
     mapper.Filter("filter1", f => f.Condition("condition1"));
     mapper.Filter("filter2", f => f.Condition("condition2"));
     mapper.Filter("filter1", f => f.Condition("anothercondition1"));
     hbm.filter.Length.Should().Be(2);
     hbm.filter.Satisfy(filters => filters.Any(f => f.name == "filter1" && f.condition == "anothercondition1"));
     hbm.filter.Satisfy(filters => filters.Any(f => f.name == "filter2" && f.condition == "condition2"));
 }
		private void AddSetSecondPass(HbmSet setMapping, Set model, IDictionary<string, MetaAttribute> inheritedMetas)
		{
			mappings.AddSecondPass(delegate(IDictionary<string, PersistentClass> persistentClasses)
				{
					PreCollectionSecondPass(model);
					BindSetSecondPass(setMapping, model, persistentClasses, inheritedMetas);
					PostCollectionSecondPass(model);
				});
		}
        public void WhenSetTwoCachePropertiesInTwoActionsThenSetTheTwoValuesWithoutLostTheFirst()
        {
            var hbm = new HbmSet();
            var mapper = new SetMapper(typeof(Animal), typeof(Animal), hbm);
            mapper.Cache(ch => ch.Region("pizza"));
            mapper.Cache(ch => ch.Usage(CacheUsage.NonstrictReadWrite));

            var hbmCache = hbm.cache;
            hbmCache.Should().Not.Be.Null();
            hbmCache.region.Should().Be("pizza");
            hbmCache.usage.Should().Be(HbmCacheUsage.NonstrictReadWrite);
        }
		public void Set(MemberInfo property, Action<ISetPropertiesMapper> collectionMapping, Action<ICollectionElementRelation> mapping)
		{
			var hbm = new HbmSet { name = property.Name };
			System.Type propertyType = property.GetPropertyOrFieldType();
			System.Type collectionElementType = propertyType.DetermineCollectionElementType();
			collectionMapping(new SetMapper(Container, collectionElementType, new NoMemberPropertyMapper(), hbm));
			mapping(new CollectionElementRelation(collectionElementType, MapDoc, rel => hbm.Item = rel));
			AddProperty(hbm);
		}
 public void SetLazy()
 {
     var hbm = new HbmSet();
     var mapper = new SetMapper(typeof(Animal), typeof(Animal), hbm);
     mapper.Lazy(CollectionLazy.Extra);
     hbm.Lazy.Should().Be.EqualTo(HbmCollectionLazy.Extra);
     mapper.Lazy(CollectionLazy.NoLazy);
     hbm.Lazy.Should().Be.EqualTo(HbmCollectionLazy.False);
     mapper.Lazy(CollectionLazy.Lazy);
     hbm.Lazy.Should().Be.EqualTo(HbmCollectionLazy.True);
 }
		private void BindSetSecondPass(HbmSet setMapping, Set model,
			IDictionary<string, PersistentClass> persistentClasses, IDictionary<string, MetaAttribute> inheritedMetas)
		{
			BindCollectionSecondPass(setMapping, model, persistentClasses, inheritedMetas);

			if (!model.IsOneToMany)
				model.CreatePrimaryKey();
		}
 public void Should_get_the_correct_value_from_key()
 {
     const string expected = "FirstName";
     HbmSet set = new HbmSet
         {
             key = new HbmKey
                 {
                     column1 = expected
                 }
         };
     string result = set.GetColumnName();
     result.ShouldBeEqualTo(expected);
 }
 public void SetCollectionTypeByWrongTypeShouldThrow()
 {
     var hbm = new HbmSet();
     var mapper = new SetMapper(typeof(Animal), typeof(Animal), hbm);
     ActionAssert.Throws<ArgumentNullException>(() => mapper.Type(null));
     ActionAssert.Throws<ArgumentOutOfRangeException>(() => mapper.Type(typeof(object)));
 }
 public void SetMutable()
 {
     var hbm = new HbmSet();
     var mapper = new SetMapper(typeof(Animal), typeof(Animal), hbm);
     mapper.Mutable(true);
     hbm.Mutable.Should().Be.True();
     mapper.Mutable(false);
     hbm.Mutable.Should().Be.False();
 }