public void Test_Build_WithLambdaProp_ShouldSetRelationshipName()
        {
            //---------------Set up test pack-------------------
            var newRelationshipsBuilder = new RelationshipsBuilderStub <Car>();

            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            var newSingleRelationshipDefBuilder = new SingleRelationshipDefBuilder <Car, SteeringWheel>(newRelationshipsBuilder, c => c.SteeringWheel);
            var singleRelationshipDef           = newSingleRelationshipDefBuilder.Build();

            //---------------Test Result -----------------------
            Assert.AreEqual("SteeringWheel", singleRelationshipDef.RelationshipName);
        }
        public void Test_Build_ShouldConstructCorrectly()
        {
            //---------------Set up test pack-------------------
            const string relationshipName = "SteeringWheel";
            SingleRelationshipDefBuilder <Car, SteeringWheel> singleRelationshipDefBuilder = GetNewSingleRelationshipDefBuilder(car => car.SteeringWheel);

            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            var singleRelationshipDef = singleRelationshipDefBuilder.Build();

            //---------------Test Result -----------------------
            Assert.AreEqual(relationshipName, singleRelationshipDef.RelationshipName);
            Assert.IsTrue(singleRelationshipDef.KeepReferenceToRelatedObject);
            Assert.AreEqual(DeleteParentAction.DoNothing, singleRelationshipDef.DeleteParentAction);
            // This will only be available once the classdef has been built i.e. using new ClassDef
            //Assert.AreEqual("Car", singleRelationshipDef.OwningClassName);
            Assert.AreEqual("TestProject.BO", singleRelationshipDef.RelatedObjectAssemblyName);
            Assert.AreEqual("SteeringWheel", singleRelationshipDef.RelatedObjectClassName);
            Assert.AreEqual(0, singleRelationshipDef.RelKeyDef.Count);
            Assert.AreEqual(InsertParentAction.InsertRelationship, singleRelationshipDef.InsertParentAction);
            Assert.AreEqual(RelationshipType.Association, singleRelationshipDef.RelationshipType);
        }
 public SingleRelKeyDefBuilder(SingleRelationshipDefBuilder <TBo, TRelatedType> singleRelationshipDefBuilder)
 {
     _singleRelationshipDefBuilder = singleRelationshipDefBuilder;
     _singleRelKeyBuilder          = new SingleRelKeyBuilder <TBo, TRelatedType>(_singleRelationshipDefBuilder);
 }
        public void Test_Build_WithLambdaProp_ShouldSetRelationshipName()
        {
            //---------------Set up test pack-------------------
            var newRelationshipsBuilder = new RelationshipsBuilderStub<Car>();

            //---------------Assert Precondition----------------

            //---------------Execute Test ----------------------
            var newSingleRelationshipDefBuilder = new SingleRelationshipDefBuilder<Car, SteeringWheel>(newRelationshipsBuilder,c=> c.SteeringWheel);
            var singleRelationshipDef = newSingleRelationshipDefBuilder.Build();

            //---------------Test Result -----------------------
            Assert.AreEqual("SteeringWheel", singleRelationshipDef.RelationshipName);
        }