示例#1
0
        public void WhenForceClassRelationToIncompatibleTypeThenThrows()
        {
            var mapping = new HbmManyToMany();
            var mapper  = new ManyToManyMapper(typeof(MyClass), mapping, null);

            Executing.This(() => mapper.Class(typeof(Whatever))).Should().Throw <ArgumentOutOfRangeException>();
        }
示例#2
0
        public void CanAssignEntityName()
        {
            var mapping = new HbmManyToMany();
            var mapper  = new ManyToManyMapper(typeof(MyClass), mapping, null);

            mapper.EntityName("myname");
            mapping.EntityName.Should().Be("myname");
        }
示例#3
0
        public void CanAssignNotFoundMode()
        {
            var mapping = new HbmManyToMany();
            var mapper  = new ManyToManyMapper(typeof(MyClass), mapping, null);

            mapper.NotFound(NotFoundMode.Ignore);
            mapping.NotFoundMode.Should().Be(HbmNotFoundMode.Ignore);
        }
示例#4
0
        public void CanSetFormula()
        {
            var mapping = new HbmManyToMany();
            var mapper  = new ManyToManyMapper(typeof(MyClass), mapping, null);

            mapper.Formula("SomeFormula");
            mapping.formula.Should().Be("SomeFormula");
        }
示例#5
0
        public void CanForceClassRelation()
        {
            var mapping = new HbmManyToMany();
            var mapper  = new ManyToManyMapper(typeof(MyClass), mapping, null);

            mapper.Class(typeof(MyClass));

            mapping.Class.Should().Contain("MyClass").And.Not.Contain("IMyInterface");
        }
示例#6
0
        public void AfterSetMultiColumnsCantSetSimpleColumn()
        {
            var mapping = new HbmManyToMany();
            var mapper  = new ManyToManyMapper(typeof(MyClass), mapping, null);

            mapper.Columns(cm => cm.Length(50), cm => cm.SqlType("VARCHAR(10)"));

            mapper.Executing(x => x.Column(cm => cm.Length(50))).Throws <MappingException>();
        }
示例#7
0
        public void SettingColumnOverridesFormula()
        {
            var mapping = new HbmManyToMany();
            var mapper  = new ManyToManyMapper(typeof(MyClass), mapping, null);

            mapper.Formula("formula");
            mapper.Column(cm => cm.Unique(true));
            mapping.formula.Should().Be.Null();
        }
示例#8
0
        public void WhenSetDefaultColumnNameThenDoesNotSetTheName()
        {
            var mapping = new HbmManyToMany();
            var mapper  = new ManyToManyMapper(typeof(MyClass), mapping, null);

            mapper.Column(cm => cm.Name("MyClass"));
            mapping.column.Should().Be.Null();
            mapping.Columns.Should().Be.Empty();
        }
示例#9
0
        public void WhenSetMultiColumnsValuesThenAutoassignColumnNames()
        {
            var mapping = new HbmManyToMany();
            var mapper  = new ManyToManyMapper(typeof(MyClass), mapping, null);

            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)));
        }
示例#10
0
        public void WhenSetFormulaWithNullThenDoNothing()
        {
            var mapping = new HbmManyToMany();
            var mapper  = new ManyToManyMapper(typeof(MyClass), mapping, null);

            mapper.Column("MyColumn");
            mapper.Formula(null);
            mapping.formula.Should().Be.Null();
            mapping.column.Should().Not.Be.Null();
        }
示例#11
0
        public void WhenSetDifferentColumnNameThenSetTheName()
        {
            var mapping = new HbmManyToMany();
            var mapper  = new ManyToManyMapper(typeof(MyClass), mapping, null);

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

            mapping.Columns.Should().Have.Count.EqualTo(1);
            mapping.Columns.Single().name.Should().Be("pepe");
        }
示例#12
0
        public void SettingColumnPlainValuesOverridesFormula()
        {
            var mapping = new HbmManyToMany();
            var mapper  = new ManyToManyMapper(typeof(MyClass), mapping, null);

            mapper.Formula("formula");
            mapper.Column("colName");
            mapping.formula.Should().Be.Null();
            mapping.column.Should().Be("colName");
        }
示例#13
0
        public void WhenSetFormulaThenResetColumn()
        {
            var mapping = new HbmManyToMany();
            var mapper  = new ManyToManyMapper(typeof(MyClass), mapping, null);

            mapper.Column("MyColumn");
            mapper.Formula("SomeFormula");
            mapping.formula.Should().Be("SomeFormula");
            mapping.column.Should().Be.Null();
            mapping.Items.Should().Be.Null();
        }
示例#14
0
        public void SettingFormulaOverridesColumnNodes()
        {
            var mapping = new HbmManyToMany();
            var mapper  = new ManyToManyMapper(typeof(MyClass), mapping, null);

            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 WhenSetColumnValuesThenAddColumnTag()
        {
            var mapping = new HbmManyToMany();
            var mapper  = new ManyToManyMapper(typeof(MyClass), mapping, null);

            mapper.Column(cm =>
            {
                cm.SqlType("VARCHAR(3)");
                cm.NotNullable(true);
            });
            mapping.Columns.Should().Not.Be.Null();
            mapping.Columns.Should().Have.Count.EqualTo(1);
        }
示例#16
0
        public void CanSetLazyness()
        {
            var mapping = new HbmManyToMany();
            var mapper  = new ManyToManyMapper(typeof(MyClass), mapping, null);

            mapper.Lazy(LazyRelation.NoProxy);
            mapping.lazy.Should().Be(HbmRestrictedLaziness.False);

            mapper.Lazy(LazyRelation.NoLazy);
            mapping.lazy.Should().Be(HbmRestrictedLaziness.False);

            mapper.Lazy(LazyRelation.Proxy);
            mapping.lazy.Should().Be(HbmRestrictedLaziness.Proxy);
        }
        public void CanSetMultipleFormulas()
        {
            var hbmMapping           = new HbmMapping();
            var mapping              = new HbmManyToMany();
            IManyToManyMapper mapper = new ManyToManyMapper(typeof(Element), mapping, hbmMapping);

            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" }));
        }
示例#18
0
        public void WhenSetMultiColumnsValuesThenAddColumns()
        {
            var mapping = new HbmManyToMany();
            var mapper  = new ManyToManyMapper(typeof(MyClass), mapping, null);

            mapper.Columns(cm =>
            {
                cm.Name("column1");
                cm.Length(50);
            }, cm =>
            {
                cm.Name("column2");
                cm.SqlType("VARCHAR(10)");
            });
            mapping.Columns.Should().Have.Count.EqualTo(2);
        }
示例#19
0
        public void WhenSetFormulaWithMultipleLinesThenSetFormulaNode()
        {
            var mapping = new HbmManyToMany();
            var mapper  = new ManyToManyMapper(typeof(MyClass), mapping, null);
            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");
        }
        public void CanSetColumnsAndFormulas()
        {
            var hbmMapping           = new HbmMapping();
            var mapping              = new HbmManyToMany();
            IManyToManyMapper mapper = new ManyToManyMapper(typeof(Element), mapping, hbmMapping);

            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");
        }