public async Task Attachment_CreateVideo_HasFile() { var bytes = File.ReadAllBytes(@"..\..\..\test.avi"); RestClient.RespondWith(r => { return(new VideoUploadTicket { Auth = "secret", UploadUrl = "http://www.example.com/test", VideoId = "xyz" }); }).ThenWith(r => { var file = r.Files.Single(f => f.Name == "videofile"); Assert.Equal("application/octet-stream", file.ContentType); Assert.Equal("test.avi", file.FileName); Assert.Equal(bytes.Length, file.ContentLength); var ms = new MemoryStream(); file.Writer(ms); AssertEx.CollectionEqual(bytes, ms.ToArray()); return("ok"); }).ThenWith(r => { return(new Messages { Message = { new Message { MessageCode = MessageCode.MESSAGE_RESOURCE_CREATED, MessageProperty = "Resource with id [4711] has been created.", Id = "4711" } } }); }); var re = new RealEstateItem(new ApartmentRent { Id = 4711 }, Client.Connection); await re.Attachments.CreateStreamingVideoAsync(new StreamingVideo { Title = "Video" }, @"..\..\..\test.avi"); }
public async Task Attachment_Create_HasFile() { var bytes = File.ReadAllBytes(@"..\..\..\test.jpg"); RestClient.RespondWith(r => { var file = r.Files.Single(f => f.Name == "attachment"); Assert.Equal("image/jpeg", file.ContentType); Assert.Equal("test.jpg", file.FileName); Assert.Equal(bytes.Length, file.ContentLength); var ms = new MemoryStream(); file.Writer(ms); AssertEx.CollectionEqual(bytes, ms.ToArray()); return(new Messages { Message = { new Message { MessageCode = MessageCode.MESSAGE_RESOURCE_CREATED, MessageProperty = "Resource with id [4711] has been created.", Id = "4711" } } }); }); var re = new RealEstateItem(new ApartmentRent { Id = 4711 }, Client.Connection); await re.Attachments.CreateAsync(new Picture { Title = "Test" }, @"..\..\..\test.jpg"); }
public async Task AttachmentsOrder_Get_CanDeserializeResponse() { RestClient.RespondWith(r => { return(new AttachmentsOrder.List { AttachmentId = { 1, 2, 3 } }); }); var re = new RealEstateItem(new ApartmentRent { Id = 1 }, Client.Connection); var list = await re.Attachments.AttachmentsOrder.GetAsync(); Assert.IsType <AttachmentsOrder.List>(list); AssertEx.CollectionEqual <long>(new long[] { 1, 2, 3 }, list.AttachmentId); }
public async Task AttachmentsOrder_Update_PostsAttachmentObject() { RestClient.RespondWith(r => { var list = r.Body() as AttachmentsOrder.List; Assert.IsAssignableFrom <AttachmentsOrder.List>(list); AssertEx.CollectionEqual <long>(new long[] { 3, 2, 1 }, list.AttachmentId); return(new Messages { Message = { new Message { MessageCode = MessageCode.MESSAGE_RESOURCE_UPDATED, MessageProperty = "" } } }); }); var re = new RealEstateItem(new ApartmentRent { Id = 4711 }, Client.Connection); await re.Attachments.AttachmentsOrder.UpdateAsync(new AttachmentsOrder.List { AttachmentId = { 3, 2, 1 } }); }
public async Task Attachment_Create_HasFile() { var bytes = File.ReadAllBytes(@"..\..\test.jpg"); Http.RespondWith(m => { var file = Http.Files.Single(f => f.Name == "attachment"); Assert.Equal("image/jpeg", file.ContentType); Assert.Equal("test.jpg", file.FileName); Assert.Equal(bytes.Length, file.ContentLength); var ms = new MemoryStream(); file.Writer(ms); AssertEx.CollectionEqual(bytes, ms.ToArray()); return(new messages { message = new[] { new Message { messageCode = MessageCode.MESSAGE_RESOURCE_CREATED, message = "Resource with id [4711] has been created." } } }); }); await realEstate.Attachments.CreateAsync(new Picture { title = "Test" }, @"..\..\test.jpg"); }
public async Task SyncWorks() { RestClient.RespondWith(r => { Assert.Equal(Method.GET, r.Method); Assert.Equal("https://rest.sandbox-immobilienscout24.de/restapi/api/offer/v1.0/user/me/realestate/4711/attachment", RestClient.BuildUri(r).AbsoluteUri); return(new Attachments { Attachment = { new Picture { Id = 1, ExternalId = "Z0", Title = "Zimmer 0", ExternalCheckSum = "9c2210b068d609fb655f1c3423698dd1" }, new Picture { Id = 2, ExternalId = "Z2", Title = "Zimmer 2", ExternalCheckSum = "4711" }, new Picture { Id = 30, ExternalId = "Z3", Title = "Zimmer 3", ExternalCheckSum = "9c2210b068d609fb655f1c3423698dd1" }, new StreamingVideo { Id = 3, ExternalId = "817725e73569630898538fda4b22d0b9", Title = "Video", ExternalCheckSum = "bb84e757201eba7d1840153179297e8a" }, new PDFDocument { Id = 4, ExternalId = "P1", Title = "Test", ExternalCheckSum = "24c43a4388ae2ea98322fa7016dd3274" }, new Link { Id = 5, ExternalId = "L1", Title = "Test", Url = "http://www.example.com/" } } }); }).ThenWith(r => { Assert.Equal(Method.DELETE, r.Method); Assert.Equal("https://rest.sandbox-immobilienscout24.de/restapi/api/offer/v1.0/user/me/realestate/4711/attachment/1", RestClient.BuildUri(r).ToString()); return(new Messages { Message = { new Message { MessageCode = MessageCode.MESSAGE_RESOURCE_DELETED, MessageProperty = "" } } }); }).ThenWith(r => { Assert.Equal(Method.DELETE, r.Method); Assert.Equal("https://rest.sandbox-immobilienscout24.de/restapi/api/offer/v1.0/user/me/realestate/4711/attachment/2", RestClient.BuildUri(r).ToString()); return(new Messages { Message = { new Message { MessageCode = MessageCode.MESSAGE_RESOURCE_DELETED, MessageProperty = "" } } }); }).ThenWith(r => { Assert.Equal(Method.POST, r.Method); Assert.Equal("https://rest.sandbox-immobilienscout24.de/restapi/api/offer/v1.0/user/me/realestate/4711/attachment", RestClient.BuildUri(r).AbsoluteUri); var meta = r.Files.Single(f => f.Name == "metadata"); Assert.Equal("application/xml", meta.ContentType); Assert.Equal("body.xml", meta.FileName); var ms = new MemoryStream(); meta.Writer(ms); var bytes = ms.ToArray(); Assert.Equal(bytes.Length, meta.ContentLength); var content = Encoding.UTF8.GetString(bytes); var a = new BaseXmlDeserializer().Deserialize <Attachment>(new RestResponse { Content = content }); Assert.IsAssignableFrom <Attachment>(a); Assert.Equal("Zimmer 1", a.Title); return(new Messages { Message = { new Message { MessageCode = MessageCode.MESSAGE_RESOURCE_CREATED, MessageProperty = "Resource with id [6] has been created.", Id = "6" } } }); }).ThenWith(r => { Assert.Equal(Method.POST, r.Method); Assert.Equal("https://rest.sandbox-immobilienscout24.de/restapi/api/offer/v1.0/user/me/realestate/4711/attachment", RestClient.BuildUri(r).AbsoluteUri); var meta = r.Files.Single(f => f.Name == "metadata"); Assert.Equal("application/xml", meta.ContentType); Assert.Equal("body.xml", meta.FileName); var ms = new MemoryStream(); meta.Writer(ms); var bytes = ms.ToArray(); Assert.Equal(bytes.Length, meta.ContentLength); var content = Encoding.UTF8.GetString(bytes); var a = new BaseXmlDeserializer().Deserialize <Attachment>(new RestResponse { Content = content }); Assert.IsAssignableFrom <Attachment>(a); Assert.Equal("Zimmer 2", a.Title); return(new Messages { Message = { new Message { MessageCode = MessageCode.MESSAGE_RESOURCE_CREATED, MessageProperty = "Resource with id [7] has been created.", Id = "7" } } }); }).ThenWith(r => { Assert.Equal(Method.PUT, r.Method); Assert.Equal("https://rest.sandbox-immobilienscout24.de/restapi/api/offer/v1.0/user/me/realestate/4711/attachment/4", RestClient.BuildUri(r).AbsoluteUri); var a = new BaseXmlDeserializer().Deserialize <Attachment>(new RestResponse { Content = (string)r.Body() });; Assert.IsAssignableFrom <Attachment>(a); Assert.Equal("Test Update", a.Title); return(new Messages { Message = { new Message { MessageCode = MessageCode.MESSAGE_RESOURCE_UPDATED, MessageProperty = "" } } }); }).ThenWith(r => { Assert.Equal(Method.GET, r.Method); Assert.Equal("https://rest.sandbox-immobilienscout24.de/restapi/api/offer/v1.0/user/me/realestate/4711/attachment/attachmentsorder", RestClient.BuildUri(r).ToString()); return(new AttachmentsOrder.List { AttachmentId = { 30, 4, 6, 7 } }); }).ThenWith(r => { Assert.Equal(Method.PUT, r.Method); Assert.Equal("https://rest.sandbox-immobilienscout24.de/restapi/api/offer/v1.0/user/me/realestate/4711/attachment/attachmentsorder", RestClient.BuildUri(r).AbsoluteUri); var list = r.Body() as AttachmentsOrder.List; Assert.IsAssignableFrom <AttachmentsOrder.List>(list); AssertEx.CollectionEqual <long>(new long[] { 6, 7, 4, 30 }, list.AttachmentId); return(new Messages { Message = { new Message { MessageCode = MessageCode.MESSAGE_RESOURCE_UPDATED, MessageProperty = "" } } }); }); var re = new RealEstateItem(new ApartmentRent { Id = 4711 }, Client.Connection); var a1 = new KeyValuePair <Attachment, string>(new Picture { ExternalId = "Z1", Title = "Zimmer 1" }, @"..\..\..\test.jpg"); var a2 = new KeyValuePair <Attachment, string>(new Picture { ExternalId = "Z2", Title = "Zimmer 2" }, @"..\..\..\test.jpg"); var a3 = new KeyValuePair <Attachment, string>(new Picture { ExternalId = "Z3", Title = "Zimmer 3" }, @"..\..\..\test.jpg"); var pdf = new KeyValuePair <Attachment, string>(new PDFDocument { ExternalId = "P1", Title = "Test Update" }, @"..\..\..\test.pdf"); var video = new KeyValuePair <Attachment, string>(new StreamingVideo { Title = "Video" }, @"..\..\..\test.avi"); var link = new KeyValuePair <Attachment, string>(new Link { Title = "Test", Url = "http://www.example.com/" }, null); var atts = new[] { a1, link, video, a2, pdf, a3 }; await re.Attachments.UpdateAsync(atts); Assert.Equal("817725e73569630898538fda4b22d0b9", video.Key.ExternalId); Assert.Equal(4, pdf.Key.Id); Assert.Equal(6, a1.Key.Id); Assert.Equal(7, a2.Key.Id); Assert.Equal(3, video.Key.Id); Assert.Equal(5, link.Key.Id); Assert.Equal("9c2210b068d609fb655f1c3423698dd1", a1.Key.ExternalCheckSum); Assert.Equal("9c2210b068d609fb655f1c3423698dd1", a2.Key.ExternalCheckSum); Assert.Equal("bb84e757201eba7d1840153179297e8a", video.Key.ExternalCheckSum); Assert.Equal("24c43a4388ae2ea98322fa7016dd3274", pdf.Key.ExternalCheckSum); }