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 }
            });
        }
Exemple #5
0
        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);
        }