コード例 #1
0
ファイル: ODataGeneralTests.cs プロジェクト: y1027/sensenet
        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"));
            });
        }
コード例 #2
0
ファイル: ODataGeneralTests.cs プロジェクト: y1027/sensenet
        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));
            });
        }