Beispiel #1
0
        public override void SetUp()
        {
            base.SetUp();

            _clientDefinition = MappingConfiguration.Current.GetTypeDefinition(typeof(Client));
            _definition       = new AnonymousRelationEndPointDefinition(_clientDefinition);
        }
Beispiel #2
0
        public void ResolveJoin_LeftSideHoldsNoForeignKey()
        {
            var propertyDefinition = CreatePropertyDefinitionAndAssociateWithClass(_classDefinition, "Customer", "Customer");

            var leftEndPointDefinition  = new AnonymousRelationEndPointDefinition(_classDefinition);
            var rightEndPointDefinition = new RelationEndPointDefinition(propertyDefinition, false);

            var entityExpression = CreateEntityDefinition(typeof(Customer), "c");

            _rdbmsPersistenceModelProviderStub
            .Stub(stub => stub.GetEntityDefinition(rightEndPointDefinition.ClassDefinition))
            .Return(rightEndPointDefinition.ClassDefinition.StorageEntityDefinition as IRdbmsStorageEntityDefinition);
            _rdbmsPersistenceModelProviderStub
            .Stub(stub => stub.GetStoragePropertyDefinition(rightEndPointDefinition.PropertyDefinition))
            .Return(_rdbmsStoragePropertyDefinitionStub);

            _rdbmsStoragePropertyDefinitionStub
            .Stub(stub => stub.GetColumnsForComparison())
            .Return(new[] { ColumnDefinitionObjectMother.CreateGuidColumn("Customer") });
            _rdbmsStoragePropertyDefinitionStub.Stub(stub => stub.PropertyType).Return(typeof(ObjectID));

            var result = _storageSpecificExpressionResolver.ResolveJoin(entityExpression, leftEndPointDefinition, rightEndPointDefinition, "o");

            SqlExpressionTreeComparer.CheckAreEqualTrees(
                Expression.Equal(
                    entityExpression.GetIdentityExpression(), // c.ID
                    new SqlColumnDefinitionExpression(typeof(Guid), "o", "Customer", false)),
                result.JoinCondition);
        }
        public void HashCode_AnonymousEndPoint()
        {
            var anonymousDefinition = new AnonymousRelationEndPointDefinition(DomainObjectIDs.Client1.ClassDefinition);
            var anonymousEndPointID = RelationEndPointID.Create(DomainObjectIDs.Client1, anonymousDefinition);

            int expectedHashCode = DomainObjectIDs.Client1.GetHashCode();

            Assert.That(anonymousEndPointID.GetHashCode(), Is.EqualTo(expectedHashCode));
        }
Beispiel #4
0
        public void NoVirtualRelationEndPointDefinition()
        {
            var endPointDefinition = new AnonymousRelationEndPointDefinition(_classDefinition);
            var relationDefinition = new RelationDefinition("Test", endPointDefinition, endPointDefinition);

            var validationResult = _validationRule.Validate(relationDefinition);

            AssertMappingValidationResult(validationResult, true, null);
        }
Beispiel #5
0
        public void SetRelationDefinition()
        {
            var endPoint           = new AnonymousRelationEndPointDefinition(_classDefinition);
            var relationDefinition = new RelationDefinition("Test", endPoint, endPoint);

            _invalidEndPointDefinition.SetRelationDefinition(relationDefinition);

            Assert.That(_invalidEndPointDefinition.RelationDefinition, Is.SameAs(relationDefinition));
        }
        public void TypeNotObjectIDRelationEndPointDefinition_RightEndPoint()
        {
            var anonymousEndPointDefinition       = new AnonymousRelationEndPointDefinition(_orderClass);
            var invalidRelationEndPointDefinition = new TypeNotObjectIDRelationEndPointDefinition(_orderClass, "Invalid", typeof(string));
            var relationDefinition = new RelationDefinition("Test", anonymousEndPointDefinition, invalidRelationEndPointDefinition);

            var mappingValidationResult = _validationRule.Validate(relationDefinition);

            AssertMappingValidationResult(mappingValidationResult, true, null);
        }
        public void PropertyNotFoundRelationEndPointDefinition_RightEndPoint()
        {
            var anonymousEndPointDefinition       = new AnonymousRelationEndPointDefinition(_orderClass);
            var invalidRelationEndPointDefinition = new PropertyNotFoundRelationEndPointDefinition(_orderClass, "Invalid");
            var relationDefinition = new RelationDefinition("Test", anonymousEndPointDefinition, invalidRelationEndPointDefinition);

            var mappingValidationResult = _validationRule.Validate(relationDefinition);

            AssertMappingValidationResult(mappingValidationResult, true, null);
        }
        public override void SetUp()
        {
            base.SetUp();

            _relation = FakeMappingConfiguration.Current.RelationDefinitions[
                "Remotion.Data.DomainObjects.UnitTests.Mapping.TestDomain.Integration.Location:Remotion.Data.DomainObjects.UnitTests.Mapping."
                + "TestDomain.Integration.Location.Client"];
            _clientEndPoint   = (AnonymousRelationEndPointDefinition)_relation.EndPointDefinitions[0];
            _locationEndPoint = (RelationEndPointDefinition)_relation.EndPointDefinitions[1];
        }
Beispiel #9
0
        public void RelationDefinitionWithNoTypeNotFoundClassDefinition()
        {
            var classDefinition    = ClassDefinitionObjectMother.CreateClassDefinitionWithMixins(typeof(DerivedValidationDomainObjectClass));
            var endPoint           = new AnonymousRelationEndPointDefinition(classDefinition);
            var relationDefinition = new RelationDefinition("ID", endPoint, endPoint);

            var validationResult = _validationRule.Validate(relationDefinition);

            AssertMappingValidationResult(validationResult, true, null);
        }
        public void TwoAnonymousRelationEndPoints()
        {
            var anonymousEndPointDefinition = new AnonymousRelationEndPointDefinition(_orderClass);
            var relationDefinition          = new RelationDefinition("Test", anonymousEndPointDefinition, anonymousEndPointDefinition);

            var mappingValidationResult = _validationRule.Validate(relationDefinition);

            var expectedMessage = "Relation 'Test' cannot have two anonymous end points.";

            AssertMappingValidationResult(mappingValidationResult, false, expectedMessage);
        }
        public void TwoVirtualRelationEndPoint_OneEndPointIsAnonymous()
        {
            var anonymousEndPointDefinition = new AnonymousRelationEndPointDefinition(_orderClass);
            var virtualEndPointDefinition   = new VirtualRelationEndPointDefinition(
                _orderClass, "OrderNumber", false, CardinalityType.One, "", PropertyInfoAdapter.Create(typeof(Order).GetProperty("OrderNumber")));
            var relationDefinition = new RelationDefinition("Test", virtualEndPointDefinition, anonymousEndPointDefinition);

            var mappingValidationResult = _validationRule.Validate(relationDefinition);

            var expectedMessage =
                "Relation 'Test' cannot have two virtual end points.\r\n\r\n"
                + "Declaring type: Remotion.Data.DomainObjects.UnitTests.Mapping.TestDomain.Integration.Order\r\n"
                + "Property: OrderNumber\r\n"
                + "Relation ID: Test";

            AssertMappingValidationResult(mappingValidationResult, false, expectedMessage);
        }
        public void RightEndPointIsAnonymous()
        {
            var endPointDefinition1 = new VirtualRelationEndPointDefinition(
                _classDefinition1,
                "RelationProperty2",
                false,
                CardinalityType.One,
                null,
                PropertyInfoAdapter.Create(typeof(RelationEndPointPropertyClass1).GetProperty("RelationProperty2")));
            var endPointDefinition2 = new AnonymousRelationEndPointDefinition(_classDefinition2);

            var relationDefinition = CreateRelationDefinitionAndSetBackReferences("Test", endPointDefinition1, endPointDefinition2);

            var validationResult = _validationRule.Validate(relationDefinition);

            AssertMappingValidationResult(validationResult, true, null);
        }
Beispiel #13
0
        public void ResolveJoin_LeftSideHoldsForeignKey()
        {
            // Order.Customer
            var propertyDefinition = CreatePropertyDefinitionAndAssociateWithClass(_classDefinition, "Customer", "Customer");

            var columnDefinition = ColumnDefinitionObjectMother.CreateGuidColumn("Customer");

            _rdbmsStoragePropertyDefinitionStub.Stub(stub => stub.GetColumnsForComparison()).Return(new[] { columnDefinition });
            _rdbmsStoragePropertyDefinitionStub.Stub(stub => stub.PropertyType).Return(typeof(ObjectID));

            var leftEndPointDefinition = new RelationEndPointDefinition(propertyDefinition, false);

            _rdbmsPersistenceModelProviderStub
            .Stub(stub => stub.GetStoragePropertyDefinition(leftEndPointDefinition.PropertyDefinition))
            .Return(_rdbmsStoragePropertyDefinitionStub);

            // Customer.Order
            var customerClassDefinition = ClassDefinitionObjectMother.CreateClassDefinition(classType: typeof(Customer));
            var customerTableDefinition = TableDefinitionObjectMother.Create(
                TestDomainStorageProviderDefinition,
                new EntityNameDefinition(null, "CustomerTable"),
                new EntityNameDefinition(null, "CustomerView"));

            _rdbmsPersistenceModelProviderStub
            .Stub(stub => stub.GetEntityDefinition(customerClassDefinition))
            .Return(customerTableDefinition);

            var rightEndPointDefinition = new AnonymousRelationEndPointDefinition(customerClassDefinition);

            var originatingEntity = CreateEntityDefinition(typeof(Order), "o");

            var result = _storageSpecificExpressionResolver.ResolveJoin(originatingEntity, leftEndPointDefinition, rightEndPointDefinition, "c");

            Assert.That(result, Is.Not.Null);
            Assert.That(result.ItemType, Is.EqualTo(typeof(Customer)));
            Assert.That(result.ForeignTableInfo, Is.TypeOf(typeof(ResolvedSimpleTableInfo)));
            Assert.That(((ResolvedSimpleTableInfo)result.ForeignTableInfo).TableName, Is.EqualTo("CustomerView"));
            Assert.That(((ResolvedSimpleTableInfo)result.ForeignTableInfo).TableAlias, Is.EqualTo("c"));

            var expected = Expression.Equal(
                new SqlColumnDefinitionExpression(typeof(Guid), "o", "Customer", false),
                new SqlColumnDefinitionExpression(typeof(Guid), "c", "ID", true));

            SqlExpressionTreeComparer.CheckAreEqualTrees(expected, result.JoinCondition);
        }
Beispiel #14
0
        public void RelationDefinitionNull()
        {
            AnonymousRelationEndPointDefinition definition = new AnonymousRelationEndPointDefinition(MappingConfiguration.Current.GetTypeDefinition(typeof(Client)));

            Assert.That(definition.RelationDefinition, Is.Null);
        }
        public void Add_PropertyNameIsNull()
        {
            var endPoint = new AnonymousRelationEndPointDefinition(_classDefinition);

            _collection.Add(endPoint);
        }