public Person DeepCopyV2() { Person clone = (Person)this.MemberwiseClone(); clone.PersonID = string.Copy(this.PersonID); PersonServiceDirector director = new PersonServiceDirector(); director.Person = clone; director.InitializePersonAdress(); director.SetPersonAdress(PersonAdress); director.InitializePersonJob(); director.SetPersonJob(PersonJob); director.InitializePersonRelationship(); director.SetPersonRelationship(RelationShip); return(clone); }
public void test_copy_changing_original_v1() { string personName = "test_name"; string personId = "person_id"; string adrCountry = "country_test"; string adrCity = "city_test"; string adrDistrict = "district_test"; string adrStreet = "street_test"; int adrNumber = 202; string perCompany = "company_test"; string perJob = "job_test"; string perSector = "sector_test"; EnumRelationship personRelationship = EnumRelationship.Single; #region Original person Person personOriginal = new Person(personName, personId); PersonServiceDirector director = new PersonServiceDirector(); director.Person = personOriginal; director.SetPersonAdress(country: adrCountry, city: adrCity, district: adrDistrict, street: adrStreet, number: adrNumber); director.SetPersonJob(company: perCompany, job: perJob, sector: perSector); director.SetPersonRelationship(relationship: personRelationship); #endregion #region Copy person Person personShallowCopied = personOriginal.ShallowCopy(); Person personDeepCopied = personOriginal.DeepCopyV1(); #endregion #region Change original person data string changedPersonName = "test_name_changed"; string changedPersonId = "person_id_changed"; string changedAdrCountry = "country_test_changed"; string changedAdrCity = "city_test_changed"; string changedAdrDistrict = "district_test_changed"; string changedAdrStreet = "street_test_changed"; int changedAdrNumber = 202; string changedPerCompany = "company_test_changed"; string changedPerJob = "job_test_changed"; string changedPerSector = "sector_test_changed"; EnumRelationship changedPersonRelationship = EnumRelationship.Married; personOriginal.Name = changedPersonName; personOriginal.PersonID = changedPersonId; director.SetPersonAdress(country: changedAdrCountry, city: changedAdrCity, district: changedAdrDistrict, street: changedAdrStreet, number: changedAdrNumber); director.SetPersonJob(company: changedPerCompany, job: changedPerJob, sector: changedPerSector); director.SetPersonRelationship(relationship: changedPersonRelationship); #endregion #region Original person Assert.That(personOriginal.Name == changedPersonName); Assert.That(personOriginal.PersonID == changedPersonId); Assert.That(personOriginal.PersonJob.Company == changedPerCompany); Assert.That(personOriginal.PersonJob.Job == changedPerJob); Assert.That(personOriginal.PersonJob.Sector == changedPerSector); Assert.That(personOriginal.PersonAdress.Country == changedAdrCountry); Assert.That(personOriginal.PersonAdress.City == changedAdrCity); Assert.That(personOriginal.PersonAdress.District == changedAdrDistrict); Assert.That(personOriginal.PersonAdress.Street == changedAdrStreet); Assert.That(personOriginal.PersonAdress.Number == changedAdrNumber); Assert.That(personOriginal.RelationShip.Relationship == changedPersonRelationship); #endregion #region Shallow copied person Assert.That(personShallowCopied.Name == personName); Assert.That(personShallowCopied.PersonID == personId); Assert.That(personShallowCopied.PersonJob.Company == perCompany); Assert.That(personShallowCopied.PersonJob.Job == perJob); Assert.That(personShallowCopied.PersonJob.Sector == perSector); Assert.That(personShallowCopied.PersonAdress.Country == adrCountry); Assert.That(personShallowCopied.PersonAdress.City == adrCity); Assert.That(personShallowCopied.PersonAdress.District == adrDistrict); Assert.That(personShallowCopied.PersonAdress.Street == adrStreet); Assert.That(personShallowCopied.PersonAdress.Number == adrNumber); Assert.That(personShallowCopied.RelationShip.Relationship == personRelationship); #endregion #region Deep copied person Assert.That(personDeepCopied.Name == personName); Assert.That(personDeepCopied.PersonID == personId); Assert.That(personDeepCopied.PersonJob.Company == perCompany); Assert.That(personDeepCopied.PersonJob.Job == perJob); Assert.That(personDeepCopied.PersonJob.Sector == perSector); Assert.That(personDeepCopied.PersonAdress.Country == adrCountry); Assert.That(personDeepCopied.PersonAdress.City == adrCity); Assert.That(personDeepCopied.PersonAdress.District == adrDistrict); Assert.That(personDeepCopied.PersonAdress.Street == adrStreet); Assert.That(personDeepCopied.PersonAdress.Number == adrNumber); Assert.That(personDeepCopied.RelationShip.Relationship == personRelationship); #endregion }