public void TestDeletePreferredParentRelationship() { var father = tree.AddPerson(TestBacking.GetCreateMalePerson()); cleanup.Add(father); var mother = tree.AddPerson(TestBacking.GetCreateFemalePerson()); cleanup.Add(mother); var son = (FamilyTreePersonState)tree.AddPerson(TestBacking.GetCreateMalePerson()).Get(); cleanup.Add(son); var chapr = tree.AddChildAndParentsRelationship(TestBacking.GetCreateChildAndParentsRelationship(father, mother, son)); cleanup.Add(chapr); var me = tree.ReadCurrentUser(); // Ensure the target relationship exists var relationship = ((FamilyTreePersonParentsState)son.ReadParents()).ChildAndParentsRelationships.First(); var state = son.ReadChildAndParentsRelationship(relationship); tree.UpdatePreferredParentRelationship(me.User.TreeUserId, son.Person.Id, state); var state2 = tree.DeletePreferredParentRelationship(me.User.TreeUserId, son.Person.Id); Assert.AreEqual(HttpStatusCode.NoContent, state2.Response.StatusCode); Assert.IsNotNull(state2.Headers.Get("Content-Location").Single()); }
public void TestDeletePreferredSpouseRelationship() { var p = (PersonState)tree.AddPerson(TestBacking.GetCreateMalePerson()).Get(); cleanup.Add(p); var s1 = tree.AddPerson(TestBacking.GetCreateFemalePerson()); cleanup.Add(s1); var s2 = tree.AddPerson(TestBacking.GetCreateFemalePerson()); cleanup.Add(s2); p.AddSpouse(s1); p.AddSpouse(s2); var me = tree.ReadCurrentUser(); var person = tree.ReadPersonById(p.Person.Id); // Ensure the target relationship exists person.LoadSpouseRelationships(); var state = (IPreferredRelationshipState)person.ReadRelationship(person.Entity.Relationships[0]); tree.UpdatePreferredSpouseRelationship(me.User.TreeUserId, p.Person.Id, state); var state2 = tree.DeletePreferredSpouseRelationship(me.User.TreeUserId, p.Person.Id); Assert.AreEqual(HttpStatusCode.NoContent, state2.Response.StatusCode); Assert.IsNotNull(state2.Headers.Get("Content-Location").Single()); }
public void TestReadPersonDescendancyWithSpecifiedSpouse() { var father = (FamilyTreePersonState)tree.AddPerson(TestBacking.GetCreateMalePerson()).Get(); cleanup.Add(father); var mother = tree.AddPerson(TestBacking.GetCreateFemalePerson()); cleanup.Add(mother); var son = tree.AddPerson(TestBacking.GetCreateMalePerson()); cleanup.Add(son); var rel1 = father.AddSpouse(mother).AddFact(TestBacking.GetMarriageFact()); cleanup.Add(rel1); var rel2 = tree.AddChildAndParentsRelationship(TestBacking.GetCreateChildAndParentsRelationship(father, mother, son)); cleanup.Add(rel2); var state = father.ReadDescendancy(FamilySearchOptions.SpouseId(mother.Headers.Get("X-ENTITY-ID").Single().Value.ToString())); Assert.DoesNotThrow(() => state.IfSuccessful()); Assert.AreEqual(HttpStatusCode.OK, state.Response.StatusCode); Assert.IsNotNull(state.Tree); Assert.IsNotNull(state.Tree.Root); Assert.IsNotNull(state.Tree.Root.Person); Assert.IsNotNull(state.Tree.Root.Spouse); Assert.IsNotNull(state.Tree.Root.Children); Assert.AreEqual(1, state.Tree.Root.Children.Count); Assert.IsNotNull(state.Tree.Root.Children[0].Person); Assert.AreEqual(father.Person.Id, state.Tree.Root.Person.Id); Assert.AreEqual(mother.Headers.Get("X-ENTITY-ID").Single().Value.ToString(), state.Tree.Root.Spouse.Id); Assert.AreEqual(son.Headers.Get("X-ENTITY-ID").Single().Value.ToString(), state.Tree.Root.Children[0].Person.Id); }
public void TestReadChildAndParentsRelationshipNotes() { var father = (FamilyTreePersonState)tree.AddPerson(TestBacking.GetCreateMalePerson()).Get(); var mother = tree.AddPerson(TestBacking.GetCreateFemalePerson()); var son = tree.AddPerson(TestBacking.GetCreateMalePerson()); var relationship = (ChildAndParentsRelationshipState)tree.AddChildAndParentsRelationship(TestBacking.GetCreateChildAndParentsRelationship(father, mother, son)).Get(); var state = relationship.LoadNotes(); Assert.DoesNotThrow(() => state.IfSuccessful()); Assert.AreEqual(HttpStatusCode.OK, state.Response.StatusCode); }
public void TestCreateCoupleRelationship() { var husband = (PersonState)collection.AddPerson(TestBacking.GetCreateMalePerson()).Get(); cleanup.Add(husband); var wife = (PersonState)collection.AddPerson(TestBacking.GetCreateFemalePerson()).Get(); cleanup.Add(wife); var state = husband.AddSpouse(wife); cleanup.Add(state); Assert.DoesNotThrow(() => state.IfSuccessful()); Assert.IsTrue(state.Response.StatusCode == System.Net.HttpStatusCode.Created); }
public void TestCreateCoupleRelationship() { var husband = (PersonState)tree.AddPerson(TestBacking.GetCreateMalePerson()).Get(); cleanup.Add(husband); var wife = tree.AddPerson(TestBacking.GetCreateFemalePerson()); cleanup.Add(wife); var state = husband.AddSpouse(wife); cleanup.Add(state); Assert.DoesNotThrow(() => state.IfSuccessful()); Assert.AreEqual(HttpStatusCode.Created, state.Response.StatusCode); }
public void TestReadPersonMergeConstraintCanMergeOtherOrderOnly() { var person1 = (FamilyTreePersonState)tree.AddPerson(TestBacking.GetCreateMalePerson()).Get(); cleanup.Add(person1); var person2 = (FamilyTreePersonState)tree.AddPerson(TestBacking.GetCreateFemalePerson()).Get(); cleanup.Add(person2); var state = person1.ReadMergeOptions(person2); Assert.DoesNotThrow(() => state.IfSuccessful()); Assert.AreEqual(HttpStatusCode.OK, state.Response.StatusCode); Assert.IsFalse(state.IsAllowed); }
public void TestReadRelationshipsToSpousesWithPersons() { var husband = (PersonState)tree.AddPerson(TestBacking.GetCreateMalePerson()).Get(); cleanup.Add(husband); var wife = tree.AddPerson(TestBacking.GetCreateFemalePerson()); cleanup.Add(wife); husband.AddSpouse(wife); var state2 = husband.LoadSpouseRelationships(FamilySearchOptions.IncludePersons()); Assert.DoesNotThrow(() => state2.IfSuccessful()); Assert.IsNotNull(state2.Entity != null); Assert.IsNotNull(state2.Entity.Persons); Assert.AreEqual(2, state2.Entity.Persons.Count); }
public void TestCreateCoupleRelationshipConclusion() { var husband = (PersonState)tree.AddPerson(TestBacking.GetCreateMalePerson()).Get(); cleanup.Add(husband); var wife = tree.AddPerson(TestBacking.GetCreateFemalePerson()); cleanup.Add(wife); var relationship = husband.AddSpouse(wife); cleanup.Add(relationship); var state = relationship.AddFact(TestBacking.GetMarriageFact()); Assert.DoesNotThrow(() => state.IfSuccessful()); Assert.AreEqual(HttpStatusCode.NoContent, state.Response.StatusCode); }
public void TestReadPersonAncestryWithSpecifiedSpouseAndAdditionalPersonAndMarriageDetails() { var grandfather = tree.AddPerson(TestBacking.GetCreateMalePerson()); cleanup.Add(grandfather); var father = tree.AddPerson(TestBacking.GetCreateMalePerson()); cleanup.Add(father); var husband = (FamilyTreePersonState)tree.AddPerson(TestBacking.GetCreateMalePerson()).Get(); cleanup.Add(husband); var wife = tree.AddPerson(TestBacking.GetCreateFemalePerson()); cleanup.Add(wife); var rel1 = husband.AddSpouse(wife).AddFact(TestBacking.GetMarriageFact()); cleanup.Add(rel1); var rel2 = tree.AddChildAndParentsRelationship(TestBacking.GetCreateChildAndParentsRelationship(grandfather, null, father)); cleanup.Add(rel2); var rel3 = tree.AddChildAndParentsRelationship(TestBacking.GetCreateChildAndParentsRelationship(father, null, husband)); cleanup.Add(rel3); husband = tree.ReadPersonById(husband.Person.Id); var state = husband.ReadAncestry(FamilySearchOptions.SpouseId(wife.Headers.Get("X-ENTITY-ID").Single().Value.ToString()), FamilySearchOptions.IncludePersonDetails(), FamilySearchOptions.IncludeMarriageDetails()); Assert.DoesNotThrow(() => state.IfSuccessful()); Assert.AreEqual(HttpStatusCode.OK, state.Response.StatusCode); Assert.IsNotNull(state.Tree); Assert.IsNotNull(state.Tree.Root); Assert.IsNotNull(state.Tree.Root.Mother); Assert.IsNotNull(state.Tree.Root.Mother.Person); Assert.IsNotNull(state.Tree.Root.Mother.Person.DisplayExtension); Assert.IsNotNull(state.Tree.Root.Mother.Person.DisplayExtension.MarriageDate); Assert.IsNotNull(state.Tree.Root.Father); Assert.IsNotNull(state.Tree.Root.Father.Person); Assert.IsNotNull(state.Tree.Root.Father.Father); Assert.IsNotNull(state.Tree.Root.Father.Father.Person); Assert.IsNotNull(state.Tree.Root.Father.Father.Father); Assert.IsNotNull(state.Tree.Root.Father.Father.Father.Person); Assert.IsNotNull(state.Tree.Root.Father.Person.Facts); Assert.IsNotNull(state.Tree.Root.Mother.Person.Facts); Assert.AreEqual(grandfather.GetSelfUri(), state.Tree.Root.Father.Father.Father.Person.GetLink("self").Href); Assert.AreEqual(father.GetSelfUri(), state.Tree.Root.Father.Father.Person.GetLink("self").Href); Assert.AreEqual(husband.GetSelfUri(), state.Tree.Root.Father.Person.GetLink("self").Href); Assert.AreEqual(wife.GetSelfUri(), state.Tree.Root.Mother.Person.GetLink("self").Href); }
public void TestReadRelationshipsToSpouses() { var husband = (FamilyTreePersonState)tree.AddPerson(TestBacking.GetCreateMalePerson()).Get(); cleanup.Add(husband); var wife = tree.AddPerson(TestBacking.GetCreateFemalePerson()); cleanup.Add(wife); husband.AddSpouse(wife); var state2 = husband.LoadSpouseRelationships(); Assert.DoesNotThrow(() => state2.IfSuccessful()); var spouses = state2.GetSpouseRelationships(); Assert.IsNotNull(spouses); Assert.Greater(spouses.Count, 0); }
public void TestDeleteChildAndParentsRelationship() { var father = (FamilyTreePersonState)tree.AddPerson(TestBacking.GetCreateMalePerson()).Get(); cleanup.Add(father); var mother = tree.AddPerson(TestBacking.GetCreateFemalePerson()); cleanup.Add(mother); var son = tree.AddPerson(TestBacking.GetCreateMalePerson()); cleanup.Add(son); var relationship = (ChildAndParentsRelationshipState)tree.AddChildAndParentsRelationship(TestBacking.GetCreateChildAndParentsRelationship(father, mother, son)).Get(); var state = relationship.Delete(); Assert.DoesNotThrow(() => state.IfSuccessful()); Assert.AreEqual(HttpStatusCode.NoContent, state.Response.StatusCode); }
public void TestRestoreCoupleRelationship() { var husband = (PersonState)tree.AddPerson(TestBacking.GetCreateMalePerson()).Get(); cleanup.Add(husband); var wife = tree.AddPerson(TestBacking.GetCreateFemalePerson()); cleanup.Add(wife); var relationship = (FamilyTreeRelationshipState)husband.AddSpouse(wife).Get(); cleanup.Add(relationship); relationship = (FamilyTreeRelationshipState)relationship.Delete().IfSuccessful().Get(); var state = relationship.Restore(); Assert.DoesNotThrow(() => state.IfSuccessful()); Assert.AreEqual(HttpStatusCode.NoContent, state.Response.StatusCode); }
public void TestReadCoupleRelationshipConditional() { var husband = (PersonState)tree.AddPerson(TestBacking.GetCreateMalePerson()).Get(); cleanup.Add(husband); var wife = tree.AddPerson(TestBacking.GetCreateFemalePerson()); cleanup.Add(wife); var relationship = husband.AddSpouse(wife); cleanup.Add(relationship); var @get = (RelationshipState)relationship.Get(); var cache = new CacheDirectives(@get); var state = relationship.Get(cache); Assert.DoesNotThrow(() => state.IfSuccessful()); Assert.AreEqual(HttpStatusCode.NotModified, state.Response.StatusCode); }
public void TestReadCoupleRelationshipSourceReferences() { var husband = (PersonState)tree.AddPerson(TestBacking.GetCreateMalePerson()).Get(); cleanup.Add(husband); var wife = tree.AddPerson(TestBacking.GetCreateFemalePerson()); cleanup.Add(wife); var relationship = husband.AddSpouse(wife); cleanup.Add(relationship); relationship.AddSourceReference(TestBacking.GetPersonSourceReference()); var state = ((RelationshipState)relationship.Get()).LoadSourceReferences(); Assert.DoesNotThrow(() => state.IfSuccessful()); Assert.AreEqual(HttpStatusCode.OK, state.Response.StatusCode); Assert.IsNotNull(state.SourceReference); }
public void TestUpdateCoupleRelationshipNote() { var husband = (PersonState)tree.AddPerson(TestBacking.GetCreateMalePerson()).Get(); cleanup.Add(husband); var wife = tree.AddPerson(TestBacking.GetCreateFemalePerson()); cleanup.Add(wife); var relationship = (RelationshipState)husband.AddSpouse(wife).Get(); cleanup.Add(relationship); relationship.AddNote(TestBacking.GetCreateNote()); var notes = relationship.LoadNotes(); var state = relationship.UpdateNote(TestBacking.GetCreateNote()); Assert.DoesNotThrow(() => state.IfSuccessful()); Assert.AreEqual(HttpStatusCode.Created, state.Response.StatusCode); }
public void TestReadSpousesOfAPerson() { var person = (PersonState)tree.AddPerson(TestBacking.GetCreateMalePerson()).Get(); cleanup.Add(person); var spouse = tree.AddPerson(TestBacking.GetCreateFemalePerson()); cleanup.Add(spouse); person.AddSpouse(spouse); var state = tree.ReadPerson(new Uri(person.GetSelfUri())); var state2 = state.ReadSpouses(); Assert.DoesNotThrow(() => state2.IfSuccessful()); Assert.IsNotNull(state2.Persons); Assert.IsNotNull(state2.Relationships); Assert.Greater(state2.Persons.Count, 0); Assert.Greater(state2.Relationships.Count, 0); }
public void TestUpdatePersonsOfACoupleRelationship() { var husband = (PersonState)tree.AddPerson(TestBacking.GetCreateMalePerson()).Get(); cleanup.Add(husband); var wife = tree.AddPerson(TestBacking.GetCreateFemalePerson()); cleanup.Add(wife); var relationship = (RelationshipState)husband.AddSpouse(wife).Get(); cleanup.Add(relationship); var wife2 = tree.AddPerson(TestBacking.GetCreateFemalePerson()); cleanup.Add(wife2); relationship.Relationship.Person2 = new ResourceReference(wife2.GetSelfUri()); var state = relationship.Post(relationship.Entity); Assert.DoesNotThrow(() => state.IfSuccessful()); Assert.AreEqual(HttpStatusCode.NoContent, state.Response.StatusCode); }
public void TestUpdateIllegalCoupleRelationship() { var husband = (PersonState)tree.AddPerson(TestBacking.GetCreateMalePerson()).Get(); cleanup.Add(husband); var wife = tree.AddPerson(TestBacking.GetCreateFemalePerson()); cleanup.Add(wife); var relationship = (RelationshipState)husband.AddSpouse(wife).Get(); cleanup.Add(relationship); var invalid = tree.AddPerson(TestBacking.GetCreateMalePerson()); cleanup.Add(invalid); relationship.Relationship.Person2 = new ResourceReference(invalid.GetSelfUri()); var state = relationship.Post(relationship.Entity); Assert.Throws <GedcomxApplicationException>(() => state.IfSuccessful()); Assert.AreEqual(HttpStatusCode.BadRequest, state.Response.StatusCode); }
public void TestReadCoupleRelationshipChangeHistory() { var husband = (FamilyTreePersonState)tree.AddPerson(TestBacking.GetCreateMalePerson()).Get(); cleanup.Add(husband); var wife = tree.AddPerson(TestBacking.GetCreateFemalePerson()); cleanup.Add(wife); var relationship = (FamilyTreeRelationshipState)husband.AddSpouse(wife).Get(); cleanup.Add(relationship); relationship.AddFact(TestBacking.GetMarriageFact()); cleanup.Add(relationship); var state = relationship.ReadChangeHistory(); Assert.DoesNotThrow(() => state.IfSuccessful()); Assert.AreEqual(HttpStatusCode.OK, state.Response.StatusCode); Assert.IsNotNull(state.Page); Assert.IsNotNull(state.Page.Entries); Assert.Greater(state.Page.Entries.Count, 0); }
public void TestCreateChildAndParentsRelationshipConclusion() { var father = (FamilyTreePersonState)tree.AddPerson(TestBacking.GetCreateMalePerson()).Get(); cleanup.Add(father); var mother = tree.AddPerson(TestBacking.GetCreateFemalePerson()); cleanup.Add(mother); var son = tree.AddPerson(TestBacking.GetCreateMalePerson()); cleanup.Add(son); var relationship = (ChildAndParentsRelationshipState)tree.AddChildAndParentsRelationship(TestBacking.GetCreateChildAndParentsRelationship(father, mother, son)).Get(); cleanup.Add(relationship); var state = relationship.AddFatherFact(TestBacking.GetBiologicalParentFact()); Assert.DoesNotThrow(() => state.IfSuccessful()); // TODO: likely this should now be created //Assert.AreEqual(HttpStatusCode.NoContent, state.Response.StatusCode); Assert.AreEqual(HttpStatusCode.Created, state.Response.StatusCode); }
public void TestReadChildAndParentsRelationshipChangeHistory() { var father = (FamilyTreePersonState)tree.AddPerson(TestBacking.GetCreateMalePerson()).Get(); cleanup.Add(father); var mother = tree.AddPerson(TestBacking.GetCreateFemalePerson()); cleanup.Add(mother); var son = tree.AddPerson(TestBacking.GetCreateMalePerson()); cleanup.Add(son); var relationship = (ChildAndParentsRelationshipState)tree.AddChildAndParentsRelationship(TestBacking.GetCreateChildAndParentsRelationship(father, mother, son)).Get(); cleanup.Add(relationship); var state = relationship.ReadChangeHistory(); Assert.DoesNotThrow(() => state.IfSuccessful()); Assert.AreEqual(HttpStatusCode.OK, state.Response.StatusCode); Assert.IsNotNull(state.Entity); Assert.IsNotNull(state.Entity.Entries); Assert.Greater(state.Entity.Entries.Count, 0); }
public void TestUpdatePreferredSpouseRelationship() { var p = (PersonState)tree.AddPerson(TestBacking.GetCreateMalePerson()).Get(); cleanup.Add(p); var s1 = tree.AddPerson(TestBacking.GetCreateFemalePerson()); cleanup.Add(s1); var s2 = tree.AddPerson(TestBacking.GetCreateFemalePerson()); cleanup.Add(s2); p.AddSpouse(s1); p.AddSpouse(s2); var me = tree.ReadCurrentUser(); var person = tree.ReadPersonById(p.Person.Id); person.LoadSpouseRelationships(); var state = (IPreferredRelationshipState)person.ReadRelationship(person.Entity.Relationships[0]); var state2 = tree.UpdatePreferredSpouseRelationship(me.User.TreeUserId, p.Person.Id, state); Assert.AreEqual(HttpStatusCode.NoContent, state2.Response.StatusCode); }
public void TestUpdateCoupleRelationshipConclusion() { var husband = (PersonState)tree.AddPerson(TestBacking.GetCreateMalePerson()).Get(); cleanup.Add(husband); var wife = tree.AddPerson(TestBacking.GetCreateFemalePerson()); cleanup.Add(wife); var relationship = husband.AddSpouse(wife); cleanup.Add(relationship); var update = (RelationshipState)relationship.AddFact(TestBacking.GetMarriageFact()).Get(); update.Fact.Date.Original = "4 Apr 1930"; update.Fact.Attribution = new Attribution() { ChangeMessage = "Change message2", }; var state = relationship.UpdateFact(update.Fact); Assert.DoesNotThrow(() => state.IfSuccessful()); Assert.AreEqual(HttpStatusCode.NoContent, state.Response.StatusCode); }
public void TestReadChildAndParentsRelationshipSourceReferences() { var father = (FamilyTreePersonState)tree.AddPerson(TestBacking.GetCreateMalePerson()).Get(); cleanup.Add(father); var mother = tree.AddPerson(TestBacking.GetCreateFemalePerson()); cleanup.Add(mother); var son = tree.AddPerson(TestBacking.GetCreateMalePerson()); cleanup.Add(son); var temp = TestBacking.GetCreateChildAndParentsRelationship(father, mother, son); temp.AddSource(TestBacking.GetPersonSourceReference()); var relationship = (ChildAndParentsRelationshipState)tree.AddChildAndParentsRelationship(temp).Get(); cleanup.Add(relationship); var state = relationship.LoadSourceReferences(); var relationship2 = (ChildAndParentsRelationshipState)relationship.Get(); Assert.DoesNotThrow(() => state.IfSuccessful()); Assert.AreEqual(HttpStatusCode.OK, state.Response.StatusCode); }
public void TestUpdateChildAndParentsRelationshipConclusion() { var father = (FamilyTreePersonState)tree.AddPerson(TestBacking.GetCreateMalePerson()).Get(); cleanup.Add(father); var mother = tree.AddPerson(TestBacking.GetCreateFemalePerson()); cleanup.Add(mother); var son = tree.AddPerson(TestBacking.GetCreateMalePerson()); cleanup.Add(son); var relationship = (ChildAndParentsRelationshipState)tree.AddChildAndParentsRelationship(TestBacking.GetCreateChildAndParentsRelationship(father, mother, son)).Get(); cleanup.Add(relationship); var update = relationship.AddFatherFact(TestBacking.GetBiologicalParentFact()); relationship = (ChildAndParentsRelationshipState)relationship.Get(); relationship.LoadConclusions(); relationship.FatherFact.KnownType = FactType.AdoptiveParent; var state = relationship.UpdateFatherFact(relationship.FatherFact); Assert.DoesNotThrow(() => state.IfSuccessful()); Assert.AreEqual(HttpStatusCode.NoContent, state.Response.StatusCode); }