public void TestUploadMultiplePhotoMemories() { var converter = new ImageConverter(); var bytes1 = (Byte[])converter.ConvertTo(TestBacking.GetCreatePhoto(), typeof(Byte[])); var bytes2 = (Byte[])converter.ConvertTo(TestBacking.GetCreatePhoto(), typeof(Byte[])); var dataSource1 = new BasicDataSource(Guid.NewGuid().ToString("n") + ".jpg", "image/jpeg", bytes1); var dataSource2 = new BasicDataSource(Guid.NewGuid().ToString("n") + ".jpg", "image/jpeg", bytes2); var description = new SourceDescription().SetTitle(new TextValue().SetValue("PersonImage")).SetCitation("Citation for PersonImage"); var artifacts = new List<IDataSource>(); artifacts.Add(dataSource1); artifacts.Add(dataSource2); IRestRequest request = new RedirectableRestRequest() .AddHeader("Authorization", "Bearer " + tree.CurrentAccessToken) .Accept(MediaTypes.GEDCOMX_JSON_MEDIA_TYPE) .ContentType(MediaTypes.MULTIPART_FORM_DATA_TYPE) .Build("https://sandbox.familysearch.org/platform/memories/memories", Method.POST); foreach (var artifact in artifacts) { String mediaType = artifact.ContentType; foreach (TextValue value in description.Titles) { request.AddFile("title", Encoding.UTF8.GetBytes(value.Value), null, MediaTypes.TEXT_PLAIN_TYPE); } foreach (SourceCitation citation in description.Citations) { request.AddFile("citation", Encoding.UTF8.GetBytes(citation.Value), null, MediaTypes.TEXT_PLAIN_TYPE); } if (artifact.Name != null) { request.Files.Add(new FileParameter() { Name = "artifact", FileName = artifact.Name, ContentType = artifact.ContentType, Writer = new Action<Stream>(s => { artifact.InputStream.Seek(0, SeekOrigin.Begin); using (var ms = new MemoryStream(artifact.InputStream.ReadAsBytes())) using (var reader = new StreamReader(ms)) { reader.BaseStream.CopyTo(s); } }) }); } } var state = tree.Client.Handle(request); Assert.IsNotNull(state); Assert.AreEqual(HttpStatusCode.Created, state.StatusCode); }
public void TestCreateUserUploadedSource() { var person = (FamilyTreePersonState)tree.AddPerson(TestBacking.GetCreateMalePerson()).Get(); cleanup.Add(person); var dataSource = new BasicDataSource("Sample Memory", MediaTypes.TEXT_PLAIN_TYPE, Resources.MemoryTXT); var sds = person.AddArtifact(dataSource); cleanup.Add(sds); var artifact = person.ReadArtifacts().SourceDescriptions.First(); var memoryUri = artifact.GetLink("memory").Href; var state = tree.AddSourceDescription(TestBacking.GetCreateUserSourceDescription(memoryUri)); cleanup.Add(state); Assert.DoesNotThrow(() => state.IfSuccessful()); Assert.AreEqual(HttpStatusCode.Created, state.Response.StatusCode); }
public void TestDeleteMemoryPersona() { var converter = new ImageConverter(); var bytes = (Byte[])converter.ConvertTo(TestBacking.GetCreatePhoto(), typeof(Byte[])); var dataSource = new BasicDataSource(Guid.NewGuid().ToString("n") + ".jpg", "image/jpeg", bytes); var description = new SourceDescription().SetTitle("PersonImage").SetCitation("Citation for PersonImage").SetDescription("Description"); var image = (SourceDescriptionState)tree.AddArtifact(description, dataSource).Get(); cleanup.Add(image); var person = (FamilyTreePersonState)tree.AddPerson(TestBacking.GetCreateMalePerson()).Get(); cleanup.Add(person); var persona = (PersonState)image.AddPersona(new Person().SetName("John Smith")).Get(); person.AddPersonaReference(persona); var personas = person.LoadPersonaReferences(); var state = personas.DeletePersonaReference(personas.GetPersonaReference()); Assert.DoesNotThrow(() => state.IfSuccessful()); Assert.AreEqual(HttpStatusCode.NoContent, state.Response.StatusCode); }
public void TestReadMemoryPersonas() { var converter = new ImageConverter(); var bytes = (Byte[])converter.ConvertTo(TestBacking.GetCreatePhoto(), typeof(Byte[])); var dataSource = new BasicDataSource(Guid.NewGuid().ToString("n") + ".jpg", "image/jpeg", bytes); var description = new SourceDescription().SetTitle("PersonImage").SetCitation("Citation for PersonImage").SetDescription("Description"); var image = (SourceDescriptionState)tree.AddArtifact(description, dataSource).Get(); cleanup.Add(image); image.AddPersona(new Person().SetName("John Smith")); var state = image.ReadPersonas(); Assert.DoesNotThrow(() => state.IfSuccessful()); Assert.AreEqual(HttpStatusCode.OK, state.Response.StatusCode); Assert.IsNotNull(state.Persons); Assert.AreEqual(1, state.Persons.Count); }
public void TestDeleteMemory() { var converter = new ImageConverter(); var bytes = (Byte[])converter.ConvertTo(TestBacking.GetCreatePhoto(), typeof(Byte[])); var dataSource = new BasicDataSource(Guid.NewGuid().ToString("n") + ".jpg", "image/jpeg", bytes); var image = (SourceDescriptionState)tree.AddArtifact(new SourceDescription().SetTitle("PersonImage").SetCitation("Citation for PersonImage"), dataSource).Get(); var state = image.Delete(); Assert.DoesNotThrow(() => state.IfSuccessful()); Assert.AreEqual(HttpStatusCode.NoContent, state.Response.StatusCode); }
public void TestUploadStory() { var dataSource = new BasicDataSource(Guid.NewGuid().ToString("n") + ".txt", "text/plain", TestBacking.GetCreateTxt()); var state = tree.AddArtifact(dataSource); cleanup.Add(state); Assert.DoesNotThrow(() => state.IfSuccessful()); Assert.AreEqual(HttpStatusCode.Created, state.Response.StatusCode); state.Delete(); }
public void TestUploadPdfDocument() { var dataSource = new BasicDataSource(Guid.NewGuid().ToString("n") + ".pdf", "application/pdf", TestBacking.GetCreatePdf()); var state = tree.AddArtifact(dataSource); cleanup.Add(state); Assert.DoesNotThrow(() => state.IfSuccessful()); Assert.AreEqual(HttpStatusCode.Created, state.Response.StatusCode); state.Delete(); }
public void TestUploadPhotoForPerson() { var person = (FamilyTreePersonState)tree.AddPerson(TestBacking.GetCreateMalePerson()).Get(); cleanup.Add(person); var converter = new ImageConverter(); var bytes = (Byte[])converter.ConvertTo(TestBacking.GetCreatePhoto(), typeof(Byte[])); var dataSource = new BasicDataSource(Guid.NewGuid().ToString("n") + ".jpg", "image/jpeg", bytes); var state = person.AddArtifact(new SourceDescription() { Titles = new List<TextValue>() { new TextValue("PersonImage") }, Citations = new List<SourceCitation>() { new SourceCitation() { Value = "Citation for PersonImage" } } }, dataSource); Assert.DoesNotThrow(() => state.IfSuccessful()); Assert.AreEqual(HttpStatusCode.Created, state.Response.StatusCode); state.Delete(); }
public void TestReadPersonMemoriesByType() { var person = (FamilyTreePersonState)tree.AddPerson(TestBacking.GetCreateMalePerson()).Get(); cleanup.Add(person); var dataSource = new BasicDataSource("Sample Memory", MediaTypes.TEXT_PLAIN_TYPE, Resources.MemoryTXT); person.AddArtifact(dataSource); person = (FamilyTreePersonState)person.Get(); var options = new QueryParameter[] { new QueryParameter("type", "story") }; var state = person.ReadArtifacts(options); Assert.DoesNotThrow(() => state.IfSuccessful()); Assert.AreEqual(HttpStatusCode.OK, state.Response.StatusCode); }