コード例 #1
0
        public void CatSetLength()
        {
            var hbm    = new HbmMapKey();
            var mapper = new MapKeyMapper(hbm);

            mapper.Length(55);
            hbm.length.Should().Be("55");
        }
コード例 #2
0
        public void AfterSetMultiColumnsCantSetSimpleColumn()
        {
            var mapping = new HbmMapKey();
            var mapper  = new MapKeyMapper(mapping);

            mapper.Columns(cm => cm.Length(50), cm => cm.SqlType("VARCHAR(10)"));
            mapper.Executing(m => m.Column(cm => cm.Length(50))).Throws <MappingException>();
        }
コード例 #3
0
        public void WhenSetTypeByICompositeUserTypeThenSetTypeName()
        {
            var mapping = new HbmMapKey();
            var mapper  = new MapKeyMapper(mapping);

            Assert.That(() => mapper.Type <MyCompoType>(), Throws.Nothing);
            Assert.That(mapping.Type.name, Does.Contain(nameof(MyCompoType)));
        }
コード例 #4
0
        public void CanSetFormula()
        {
            var mapping = new HbmMapKey();
            var mapper  = new MapKeyMapper(mapping);

            mapper.Formula("SomeFormula");
            mapping.formula.Should().Be("SomeFormula");
        }
コード例 #5
0
        public void CatSetColumnByName()
        {
            var hbm    = new HbmMapKey();
            var mapper = new MapKeyMapper(hbm);

            mapper.Column("pizza");
            hbm.column.Should().Be("pizza");
        }
コード例 #6
0
        public void WhenSetTypeByIUserTypeThenSetTypeName()
        {
            var mapping = new HbmMapKey();
            var mapper  = new MapKeyMapper(mapping);

            mapper.Type <MyType>();

            mapping.Type.name.Should().Contain("MyType");
        }
コード例 #7
0
        public void WhenSetTypeByITypeTypeThenSetType()
        {
            var mapping = new HbmMapKey();
            var mapper  = new MapKeyMapper(mapping);

            mapper.Type <EnumStringType <MyEnum> >();

            mapping.Type.name.Should().Contain(typeof(EnumStringType <MyEnum>).FullName);
        }
コード例 #8
0
        public void SettingColumnOverridesFormula()
        {
            var mapping = new HbmMapKey();
            var mapper  = new MapKeyMapper(mapping);

            mapper.Formula("formula");
            mapper.Column(cm => cm.Unique(true));
            mapping.formula.Should().Be.Null();
        }
コード例 #9
0
        public void WhenSetTypeByITypeThenSetTypeName()
        {
            var mapping = new HbmMapKey();
            var mapper  = new MapKeyMapper(mapping);

            mapper.Type(NHibernateUtil.String);

            mapping.Type.name.Should().Be.EqualTo("String");
        }
コード例 #10
0
        public void WhenSetMultiColumnsValuesThenAutoassignColumnNames()
        {
            var mapping = new HbmMapKey();
            var mapper  = new MapKeyMapper(mapping);

            mapper.Columns(cm => cm.Length(50), cm => cm.SqlType("VARCHAR(10)"));
            mapping.Columns.Should().Have.Count.EqualTo(2);
            mapping.Columns.All(cm => cm.name.Satisfy(n => !string.IsNullOrEmpty(n)));
        }
コード例 #11
0
        public void WhenSetDifferentColumnNameThenSetTheName()
        {
            var mapping = new HbmMapKey();
            var mapper  = new MapKeyMapper(mapping);

            mapper.Column(cm => cm.Name("pepe"));

            mapping.Columns.Should().Have.Count.EqualTo(1);
            mapping.Columns.Single().name.Should().Be("pepe");
        }
コード例 #12
0
        public void WhenSetFormulaWithNullThenDoNothing()
        {
            var mapping = new HbmMapKey();
            var mapper  = new MapKeyMapper(mapping);

            mapper.Column("MyColumn");
            mapper.Formula(null);
            mapping.formula.Should().Be.Null();
            mapping.column.Should().Not.Be.Null();
        }
コード例 #13
0
        public void SettingColumnPlainValuesOverridesFormula()
        {
            var mapping = new HbmMapKey();
            var mapper  = new MapKeyMapper(mapping);

            mapper.Formula("formula");
            mapper.Column("colName");
            mapping.formula.Should().Be.Null();
            mapping.column.Should().Be("colName");
        }
コード例 #14
0
        public void SettingFormulaOverridesColumnNodes()
        {
            var mapping = new HbmMapKey();
            var mapper  = new MapKeyMapper(mapping);

            mapper.Column(cm => cm.SqlType("VARCHAR(80)"));
            mapper.Formula("formula");
            mapping.formula.Should().Be("formula");
            mapping.column.Should().Be(null);
            mapping.Items.Should().Be.Null();
        }
コード例 #15
0
        public void WhenSetFormulaThenResetColumn()
        {
            var mapping = new HbmMapKey();
            var mapper  = new MapKeyMapper(mapping);

            mapper.Column("MyColumn");
            mapper.Formula("SomeFormula");
            mapping.formula.Should().Be("SomeFormula");
            mapping.column.Should().Be.Null();
            mapping.Items.Should().Be.Null();
        }
コード例 #16
0
 public void Element(Action <IMapKeyMapper> mapping)
 {
     if (mapKeyMapper == null)
     {
         var hbm = new HbmMapKey {
             type = dictionaryKeyType.GetNhTypeName()
         };
         mapKeyMapper = new MapKeyMapper(hbm);
     }
     mapping(mapKeyMapper);
     mapMapping.Item = mapKeyMapper.MapKeyMapping;
 }
コード例 #17
0
        public void WhenSetBasicColumnValuesThroughShortCutThenMergeColumn()
        {
            var mapping = new HbmMapKey();
            var mapper  = new MapKeyMapper(mapping);

            mapper.Column("pizza");
            mapper.Length(50);

            mapping.Items.Should().Be.Null();
            mapping.column.Should().Be("pizza");
            mapping.length.Should().Be("50");
        }
コード例 #18
0
        public void WhenSetBasicColumnValuesThenSetPlainValues()
        {
            var mapping = new HbmMapKey();
            var mapper  = new MapKeyMapper(mapping);

            mapper.Column(cm =>
            {
                cm.Length(50);
            });
            mapping.Items.Should().Be.Null();
            mapping.length.Should().Be("50");
        }
コード例 #19
0
        public void CanSetMultipleFormulas()
        {
            var           mapping = new HbmMapKey();
            IMapKeyMapper mapper  = new MapKeyMapper(mapping);

            mapper.Formulas("formula1", "formula2", "formula3");

            Assert.That(mapping.formula, Is.Null);
            Assert.That(mapping.Items, Has.Length.EqualTo(3));
            Assert.That(
                mapping.Items.Cast <HbmFormula>().Select(f => f.Text.Single()),
                Is.EquivalentTo(new[] { "formula1", "formula2", "formula3" }));
        }
コード例 #20
0
        public void WhenSetColumnValuesThenAddColumnTag()
        {
            var mapping = new HbmMapKey();
            var mapper  = new MapKeyMapper(mapping);

            mapper.Column(cm =>
            {
                cm.SqlType("VARCHAR(50)");
                cm.NotNullable(true);
            });
            mapping.Items.Should().Not.Be.Null();
            mapping.Columns.Should().Have.Count.EqualTo(1);
        }
コード例 #21
0
        public void BindSimpleValue(HbmMapKey mapKeyMapping, string propertyPath, bool isNullable)
        {
            new TypeBinder(value, Mappings).Bind(mapKeyMapping.Type);

            BindColumnsAndFormulas(
                mapKeyMapping.ColumnsAndFormulas.ToArray(),
                isNullable,
                () =>
                new HbmColumn
            {
                name   = mappings.NamingStrategy.PropertyToColumnName(propertyPath),
                length = mapKeyMapping.length
            });
        }
コード例 #22
0
        public void WhenSetFormulaWithMultipleLinesThenSetFormulaNode()
        {
            var mapping = new HbmMapKey();
            var mapper  = new MapKeyMapper(mapping);
            var formula = @"Line1
Line2";

            mapper.Formula(formula);
            mapping.formula.Should().Be.Null();
            mapping.Items.FirstOrDefault().Should().Not.Be.Null().And.Be.OfType <HbmFormula>();
            var hbmFormula = (HbmFormula)(mapping.Items.First());

            hbmFormula.Text.Length.Should().Be(2);
            hbmFormula.Text[0].Should().Be("Line1");
            hbmFormula.Text[1].Should().Be("Line2");
        }
コード例 #23
0
        public void WhenSetMultiColumnsValuesThenAddColumns()
        {
            var mapping = new HbmMapKey();
            var mapper  = new MapKeyMapper(mapping);

            mapper.Type <MyType>();
            mapper.Columns(cm =>
            {
                cm.Name("column1");
                cm.Length(50);
            }, cm =>
            {
                cm.Name("column2");
                cm.SqlType("VARCHAR(10)");
            });
            mapping.Columns.Should().Have.Count.EqualTo(2);
        }
コード例 #24
0
        public void CanSetColumnsAndFormulas()
        {
            var           mapping = new HbmMapKey();
            IMapKeyMapper mapper  = new MapKeyMapper(mapping);

            mapper.ColumnsAndFormulas(x => x.Name("pizza"), x => x.Formula("risotto"), x => x.Name("pasta"));

            Assert.That(mapping.Items, Has.Length.EqualTo(3));
            Assert.That(mapping.Items[0], Is.TypeOf <HbmColumn>(), "first");
            Assert.That(mapping.Items[1], Is.TypeOf <HbmFormula>(), "second");
            Assert.That(mapping.Items[2], Is.TypeOf <HbmColumn>(), "third");
            Assert.That(((HbmColumn)mapping.Items[0]).name, Is.EqualTo("pizza"));
            Assert.That(((HbmFormula)mapping.Items[1]).Text, Has.Length.EqualTo(1).And.One.EqualTo("risotto"));
            Assert.That(((HbmColumn)mapping.Items[2]).name, Is.EqualTo("pasta"));
            Assert.That(mapping.column, Is.Null, "column");
            Assert.That(mapping.formula, Is.Null, "formula");
        }
コード例 #25
0
        public void BindSimpleValue(HbmMapKey mapKeyMapping, string propertyPath, bool isNullable)
        {
            new TypeBinder(value, Mappings).Bind(mapKeyMapping.Type);
            var formulas = mapKeyMapping.Formulas.ToArray();

            if (formulas.Length > 0)
            {
                BindFormulas(formulas);
            }
            else
            {
                new ColumnsBinder(value, Mappings).Bind(mapKeyMapping.Columns, isNullable,
                                                        () =>
                                                        new HbmColumn
                {
                    name   = mappings.NamingStrategy.PropertyToColumnName(propertyPath),
                    length = mapKeyMapping.length
                });
            }
        }
コード例 #26
0
 public MapKeyMapper(HbmMapKey hbmMapKey)
 {
     this.hbmMapKey = hbmMapKey;
 }