public void OData_UserAvatarByInnerData() { Test(() => { var testDomain = new Domain(Repository.ImsFolder) { Name = "Domain1" }; testDomain.Save(); var testUser = new User(testDomain) { Name = "User1" }; testUser.Save(); var testSite = CreateTestSite(); var testAvatars = new Folder(testSite) { Name = "demoavatars" }; testAvatars.Save(); var testAvatar = new Image(testAvatars) { Name = "user1.jpg" }; testAvatar.Binary = new BinaryData { FileName = "user1.jpg" }; testAvatar.Binary.SetStream(RepositoryTools.GetStreamFromString("abcdefgh")); testAvatar.Save(); var avatarBinaryData = new BinaryData { FileName = "user2.jpg" }; avatarBinaryData.SetStream(RepositoryTools.GetStreamFromString("ijklmnop")); // set avatar of User1 var userContent = Content.Load(testUser.Id); var avatarData = new ImageField.ImageFieldData(null, null, avatarBinaryData); userContent["Avatar"] = avatarData; userContent.Save(); // ACTION var entity = ODataGET <ODataEntity>($"/OData.svc/Root/IMS/{testDomain.Name}('{testUser.Name}')", "metadata=no&$select=Avatar,ImageRef,ImageData"); // ASSERT var avatarString = entity.AllProperties["Avatar"].ToString(); Assert.IsTrue(avatarString.Contains("Url")); Assert.IsTrue(avatarString.Contains($"/binaryhandler.ashx?nodeid={testUser.Id}&propertyname=ImageData")); }); }
public void OData_UserAvatarUpdateInnerDataToRef() { Test(() => { var testDomain = new Domain(Repository.ImsFolder) { Name = "Domain1" }; testDomain.Save(); var testUser = new User(testDomain) { Name = "User1" }; testUser.Save(); var testSite = CreateTestSite(); var testAvatars = new Folder(testSite) { Name = "demoavatars" }; testAvatars.Save(); var testAvatar = new Image(testAvatars) { Name = "user1.jpg" }; testAvatar.Binary = new BinaryData { FileName = "user1.jpg" }; testAvatar.Binary.SetStream(RepositoryTools.GetStreamFromString("abcdefgh")); testAvatar.Save(); var avatarBinaryData = new BinaryData { FileName = "user2.jpg" }; avatarBinaryData.SetStream(RepositoryTools.GetStreamFromString("ijklmnop")); // set avatar of User1 var userContent = Content.Load(testUser.Id); var avatarData = new ImageField.ImageFieldData(null, null, avatarBinaryData); userContent["Avatar"] = avatarData; userContent.Save(); // ACTION var result = ODataPATCH <ODataEntity>($"/OData.svc/Root/IMS/{testDomain.Name}('{testUser.Name}')", "metadata=no&$select=Avatar,ImageRef,ImageData", $"(models=[{{\"Avatar\": {testAvatar.Id}}}])"); // ASSERT if (result is ODataError error) { Assert.AreEqual("", error.Message); } var entity = result as ODataEntity; if (entity == null) { Assert.Fail($"Result is {result.GetType().Name} but ODataEntity is expected."); } var avatarString = entity.AllProperties["Avatar"].ToString(); Assert.IsTrue(avatarString.Contains("Url")); Assert.IsTrue(avatarString.Contains(testAvatar.Path)); }); }