public override void SetUp() { base.SetUp(); _clientDefinition = MappingConfiguration.Current.GetTypeDefinition(typeof(Client)); _definition = new AnonymousRelationEndPointDefinition(_clientDefinition); }
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)); }
public void NoVirtualRelationEndPointDefinition() { var endPointDefinition = new AnonymousRelationEndPointDefinition(_classDefinition); var relationDefinition = new RelationDefinition("Test", endPointDefinition, endPointDefinition); var validationResult = _validationRule.Validate(relationDefinition); AssertMappingValidationResult(validationResult, true, null); }
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]; }
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); }
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); }
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); }