public void Test_AddedChild_UpdatesRelatedPropertiesOnlyWhenParentSaves_DB_CompositeKey() { //---------------Set up test pack------------------- TestUsingDatabase.SetupDBDataAccessor(); Car car = new Car(); car.Save(); ContactPersonCompositeKey contactPerson = new ContactPersonCompositeKey(); contactPerson.PK1Prop1 = TestUtil.GetRandomString(); contactPerson.PK1Prop2 = TestUtil.GetRandomString(); contactPerson.Save(); contactPerson.GetCarsDriven().Add(car); //---------------Assert PreConditions--------------- Assert.AreEqual(contactPerson.PK1Prop1, car.DriverFK1); Assert.AreEqual(contactPerson.PK1Prop2, car.DriverFK2); //---------------Execute Test ---------------------- contactPerson.Save(); FixtureEnvironment.ClearBusinessObjectManager(); Car loadedCar = Broker.GetBusinessObject <Car>(car.ID); //---------------Test Result ----------------------- Assert.AreEqual(contactPerson.PK1Prop1, loadedCar.DriverFK1); Assert.AreEqual(contactPerson.PK1Prop2, loadedCar.DriverFK2); }
public void Test_UpdateSqlStatement_CompositeKey() { //---------------Set up test pack------------------- TestUsingDatabase.SetupDBDataAccessor(); Car car = new Car(); car.Save(); ContactPersonCompositeKey contactPerson = new ContactPersonCompositeKey(); contactPerson.PK1Prop1 = TestUtil.GetRandomString(); contactPerson.PK1Prop2 = TestUtil.GetRandomString(); contactPerson.Save(); contactPerson.GetCarsDriven().Add(car); SingleRelationship <ContactPersonCompositeKey> singleRelationship = car.Relationships.GetSingle <ContactPersonCompositeKey>("Driver"); singleRelationship.SetRelatedObject(contactPerson); IRelationship relationship = contactPerson.Relationships.GetMultiple <Car>("Driver"); var generator = CreateUpdateStatementGenerator(car, DatabaseConfig.MySql); //---------------Assert PreConditions--------------- //---------------Execute Test ---------------------- var sql = generator.GenerateForRelationship(relationship, car); //---------------Test Result ----------------------- var sqlStatements = sql.ToList(); Assert.AreEqual(1, sqlStatements.Count); Assert.AreEqual("UPDATE `car_table` SET `Driver_FK1` = ?Param0, `Driver_FK2` = ?Param1 WHERE `CAR_ID` = ?Param2", sqlStatements[0].Statement.ToString()); Assert.AreEqual(contactPerson.PK1Prop1, sqlStatements[0].Parameters[0].Value); Assert.AreEqual(contactPerson.PK1Prop2, sqlStatements[0].Parameters[1].Value); Assert.AreEqual(car.CarID.ToString("B").ToUpper(), sqlStatements[0].Parameters[2].Value); //---------------Tear Down ------------------------- }
public void Test_UpdateSqlStatement_CompositeKey() { //---------------Set up test pack------------------- TestUsingDatabase.SetupDBDataAccessor(); Car car = new Car(); car.Save(); ContactPersonCompositeKey contactPerson = new ContactPersonCompositeKey(); contactPerson.PK1Prop1 = TestUtil.GetRandomString(); contactPerson.PK1Prop2 = TestUtil.GetRandomString(); contactPerson.Save(); contactPerson.GetCarsDriven().Add(car); SingleRelationship<ContactPersonCompositeKey> singleRelationship = car.Relationships.GetSingle<ContactPersonCompositeKey>("Driver"); singleRelationship.SetRelatedObject(contactPerson); IRelationship relationship = contactPerson.Relationships.GetMultiple<Car>("Driver"); var generator = CreateUpdateStatementGenerator(car, DatabaseConfig.MySql); //---------------Assert PreConditions--------------- //---------------Execute Test ---------------------- var sql = generator.GenerateForRelationship(relationship, car); //---------------Test Result ----------------------- var sqlStatements = sql.ToList(); Assert.AreEqual(1, sqlStatements.Count); Assert.AreEqual("UPDATE `car_table` SET `Driver_FK1` = ?Param0, `Driver_FK2` = ?Param1 WHERE `CAR_ID` = ?Param2", sqlStatements[0].Statement.ToString()); Assert.AreEqual(contactPerson.PK1Prop1, sqlStatements[0].Parameters[0].Value); Assert.AreEqual(contactPerson.PK1Prop2, sqlStatements[0].Parameters[1].Value); Assert.AreEqual(car.CarID.ToString("B").ToUpper(), sqlStatements[0].Parameters[2].Value); //---------------Tear Down ------------------------- }