コード例 #1
0
        public void Test_0201_Refresh_no_ID()
        {
            this.LogIn();

            KiiGroup group = Kii.Group("newGroup");

            // set Response
            this.SetStandardRefreshResponse();

            bool      done               = false;
            KiiGroup  refreshedGroup     = null;
            Exception refreshedException = null;

            group.Refresh((KiiGroup retGroup, Exception retExp) =>
            {
                done               = true;
                refreshedGroup     = retGroup;
                refreshedException = retExp;
            });

            Assert.IsTrue(done);
            Assert.IsNotNull(refreshedException);
            Assert.IsTrue(refreshedException is InvalidOperationException);
            Assert.IsNotNull(refreshedGroup);
            Assert.AreEqual("newGroup", refreshedGroup.Name);
        }
コード例 #2
0
        public void TestGetIDAfterSave()
        {
            Kii.Initialize("appId", "appKey", Kii.Site.US);
            MockHttpClientFactory factory = new MockHttpClientFactory();

            Kii.HttpClientFactory = factory;

            MockHttpClient client = factory.Client;

            // login
            client.AddResponse(200, "{" +
                               "\"id\" : \"user1234\"," +
                               "\"access_token\" : \"cdef\"," +
                               "\"expires_in\" : 9223372036854775}");
            KiiUser.LogIn("kii1234", "pass1234");

            client.AddResponse(200, "{" +
                               "\"groupID\" : \"dummyId\"" +
                               "}");
            KiiGroup group = Kii.Group("MyGroup");

            group.Save();

            Assert.AreEqual("dummyId", group.ID);
            Assert.AreEqual("MyGroup", group.Name);
        }
コード例 #3
0
        public void Test_GroupScopeAsync()
        {
            KiiGroup group = Kii.Group("test_group");

            group.Save();
            group.Topic("group_topic").Save();

            CountDownLatch cd = new CountDownLatch(1);
            IList <KiiACLEntry <KiiTopic, TopicAction> > entries = null;
            Exception exception = null;

            KiiTopic topic = group.Topic("group_topic");

            topic.ListAclEntries((IList <KiiACLEntry <KiiTopic, TopicAction> > result, Exception e) => {
                entries   = result;
                exception = e;
                cd.Signal();
            });
            if (!cd.Wait(new TimeSpan(0, 0, 0, 20)))
            {
                Assert.Fail("Callback not fired.");
            }
            Assert.IsNull(exception);
            Assert.AreEqual(4, entries.Count);
        }
コード例 #4
0
        public void Test_0001_Save_server_error()
        {
            this.LogIn();

            KiiGroup group = Kii.Group("testGroup");

            KiiUser user = KiiUser.CreateByUri(new Uri("kiicloud://users/user1234"));

            group.AddUser(user);

            // set Response
            client.AddResponse(new CloudException(400, "{ \"errorCode\" : \"INVALID_INPUT_DATA\", \"message\" : \"There are validation errors\", \"suppressed\" : [ ]}"));

            bool      done           = false;
            KiiGroup  savedGroup     = null;
            Exception savedException = null;

            group.Save((KiiGroup retGroup, Exception retExp) =>
            {
                done           = true;
                savedGroup     = retGroup;
                savedException = retExp;
            });

            Assert.IsTrue(done);
            Assert.IsNotNull(savedException);
            Assert.IsTrue(savedException is GroupOperationException);
            Assert.IsNotNull(savedGroup);
            Assert.AreEqual("testGroup", savedGroup.Name);
        }
コード例 #5
0
        public void Test_0402_ChangeName_no_id()
        {
            this.LogIn();

            KiiGroup group = Kii.Group("groupName");

            // set Response
            client.AddResponse(204, "");

            bool      done             = false;
            KiiGroup  changedGroup     = null;
            Exception changedException = null;

            group.ChangeName("newGroupName", (KiiGroup retGroup, Exception retExp) =>
            {
                done             = true;
                changedGroup     = retGroup;
                changedException = retExp;
            });

            Assert.IsTrue(done);
            Assert.IsNotNull(changedException);
            Assert.IsTrue(changedException is InvalidOperationException);
            Assert.IsNotNull(changedGroup);
            Assert.AreEqual("groupName", changedGroup.Name);
        }
コード例 #6
0
        public void Test_0504_remove_member()
        {
            // Create test user for group owner
            string  userID = TextUtils.generateUUID();
            KiiUser user   = KiiUser.CreateByUri(new Uri("kiicloud://users/" + userID));

            SDKTestHack.SetField(Kii.Instance, "mLoginUser", user);
            string authToken = TextUtils.generateUUID();

            KiiCloudEngine.UpdateAccessToken(authToken);

            // Prepare group
            string   groupName = TextUtils.randomAlphaNumeric(10);
            string   groupID   = TextUtils.randomAlphaNumeric(26);
            KiiGroup group     = Kii.Group(groupName);

            SDKTestHack.SetField(group, "mId", groupID);
            SDKTestHack.SetField(group, "mOwnerId", userID);

            // Prepare KiiUser for member
            string  memberID = TextUtils.generateUUID();
            KiiUser member   = KiiUser.CreateByUri(new Uri("kiicloud://users/" + memberID));

            group.RemoveUser(member);

            // Check value
            HashSet <KiiUser> addUsers    = (HashSet <KiiUser>)SDKTestHack.GetField(group, "addUsers");
            HashSet <KiiUser> removeUsers = (HashSet <KiiUser>)SDKTestHack.GetField(group, "removeUsers");

            Assert.AreEqual(0, addUsers.Count);
            Assert.AreEqual(1, removeUsers.Count);

            // Prepare mock response for adding user
            client.AddResponse(204, "");

            // Save group
            group.Save();

            // Verify request
            Assert.AreEqual(1, client.RequestUrl.Count);
            Assert.AreEqual(1, client.RequestHeader.Count);
            string requestUrl = AppUtil.getUrlOfSite(AppConst.APP_SITE, AppConst.APP_ID, "groups", groupID, "members", memberID);

            Assert.AreEqual(requestUrl, client.RequestUrl[0]);
            Assert.AreEqual("DELETE", client.RequestMethod[0].ToString());
            IList <MockHttpHeaderList> headers = client.RequestHeader;

            Assert.AreEqual(AppConst.APP_ID, client.RequestHeader[0]["X-Kii-AppID"]);
            Assert.AreEqual(AppConst.APP_KEY, client.RequestHeader[0]["X-Kii-AppKey"]);
            Assert.AreEqual("Bearer " + authToken, client.RequestHeader[0]["Authorization"]);
            Assert.AreEqual(null, client.RequestBody[0]);

            // Verify
            Assert.AreEqual(groupID, group.ID);

            addUsers    = (HashSet <KiiUser>)SDKTestHack.GetField(group, "addUsers");
            removeUsers = (HashSet <KiiUser>)SDKTestHack.GetField(group, "removeUsers");
            Assert.AreEqual(0, addUsers.Count);
            Assert.AreEqual(0, removeUsers.Count);
        }
コード例 #7
0
        public void Test_0002_Save_broken_json()
        {
            this.LogIn();

            KiiGroup group = Kii.Group("testGroup");

            KiiUser user = KiiUser.CreateByUri(new Uri("kiicloud://users/user1234"));

            group.AddUser(user);

            // set Response
            client.AddResponse(200, "{}");

            bool      done           = false;
            KiiGroup  savedGroup     = null;
            Exception savedException = null;

            group.Save((KiiGroup retGroup, Exception retExp) =>
            {
                done           = true;
                savedGroup     = retGroup;
                savedException = retExp;
            });

            Assert.IsTrue(done);
            Assert.IsNotNull(savedException);
            Assert.IsTrue(savedException is IllegalKiiBaseObjectFormatException);
            Assert.IsNotNull(savedGroup);
            Assert.AreEqual("testGroup", savedGroup.Name);
        }
コード例 #8
0
        public void Test_0101_ListMembers_NoID()
        {
            this.LogIn();

            KiiGroup group = Kii.Group("newGroup");

            // set Response
            this.SetStandardListResponse();

            bool            done          = false;
            IList <KiiUser> listMembers   = null;
            Exception       listException = null;

            group.ListMembers((IList <KiiUser> retUserList, Exception retExp) =>
            {
                done          = true;
                listMembers   = retUserList;
                listException = retExp;
            });

            Assert.IsTrue(done);
            Assert.IsNotNull(listException);
            Assert.IsTrue(listException is InvalidOperationException);
            Assert.IsNull(listMembers);
        }
コード例 #9
0
        public void Test_0301_Delete_no_ID()
        {
            this.LogIn();

            KiiGroup group = Kii.Group("newGroup");

            // set Response
            client.AddResponse(204, "");

            bool      done             = false;
            KiiGroup  deletedGroup     = null;
            Exception deletedException = null;

            group.Delete((KiiGroup retGroup, Exception retExp) =>
            {
                done             = true;
                deletedGroup     = retGroup;
                deletedException = retExp;
            });

            Assert.IsTrue(done);
            Assert.IsNotNull(deletedException);
            Assert.IsTrue(deletedException is InvalidOperationException);
            Assert.IsNotNull(deletedGroup);
            Assert.AreEqual("newGroup", deletedGroup.Name);
        }
コード例 #10
0
        public void Test_0000_Save()
        {
            this.LogIn();

            KiiGroup group = Kii.Group("testGroup");

            KiiUser user = KiiUser.CreateByUri(new Uri("kiicloud://users/user1234"));

            group.AddUser(user);

            // set Response
            this.SetStandardSaveResponse();

            bool      done           = false;
            KiiGroup  savedGroup     = null;
            Exception savedException = null;

            group.Save((KiiGroup retGroup, Exception retExp) =>
            {
                done           = true;
                savedGroup     = retGroup;
                savedException = retExp;
            });

            Assert.IsTrue(done);
            Assert.IsNull(savedException);
            Assert.AreEqual("0c4375c7-16f5-4ce6-9cd3-ec24bc0519e9", savedGroup.ID);
        }
コード例 #11
0
        public void Test_0403_Group_member_empty()
        {
            Kii.Initialize("ee573743", "5eb7b8bc1b4e4c98e659431c69cef8d4", Kii.Site.US);
            KiiGroup group = Kii.Group("group1", new List <KiiUser>());

            Assert.AreEqual("group1", group.Name);
        }
コード例 #12
0
        public void Test_0402_Group_member_null()
        {
            Kii.Initialize("ee573743", "5eb7b8bc1b4e4c98e659431c69cef8d4", Kii.Site.US);
            KiiGroup group = Kii.Group("group1", null);

            Assert.AreEqual("group1", group.Name);
        }
コード例 #13
0
        public void Test_Non_Initialize_StorageAPI()
        {
            KiiUser   user   = null;
            KiiGroup  group  = null;
            KiiBucket bucket = null;
            KiiObject obj    = null;

            try
            {
                // User Management
                user = KiiUser.BuilderWithName("hoge").Build();
                user.Register("password");
                Assert.Fail("InvalidOperationException isn't thrown");
            }
            catch (InvalidOperationException e)
            {
                Assert.AreEqual(ErrorInfo.UTILS_KIICLIENT_NULL, e.Message);
            }
            try
            {
                bucket = Kii.Bucket("appbucket");
                bucket.Delete();
                Assert.Fail("InvalidOperationException isn't thrown");
            }
            catch (InvalidOperationException e)
            {
                Assert.AreEqual(ErrorInfo.UTILS_KIICLIENT_NULL, e.Message);
            }
            try
            {
                obj = bucket.NewKiiObject();
                obj.Save();
                Assert.Fail("InvalidOperationException isn't thrown");
            }
            catch (InvalidOperationException e)
            {
                Assert.AreEqual(ErrorInfo.UTILS_KIICLIENT_NULL, e.Message);
            }
            try
            {
                KiiQuery query = new KiiQuery();
                bucket.Query(query);
                Assert.Fail("InvalidOperationException isn't thrown");
            }
            catch (InvalidOperationException e)
            {
                Assert.AreEqual(ErrorInfo.UTILS_KIICLIENT_NULL, e.Message);
            }
            try
            {
                group = Kii.Group("myGroup");
                group.Save();
                Assert.Fail("InvalidOperationException isn't thrown");
            }
            catch (InvalidOperationException e)
            {
                Assert.AreEqual(ErrorInfo.UTILS_KIICLIENT_NULL, e.Message);
            }
        }
コード例 #14
0
        public void Test_0401_Group_name_null()
        {
            Kii.Initialize("ee573743", "5eb7b8bc1b4e4c98e659431c69cef8d4", Kii.Site.US);
            List <KiiUser> members = new List <KiiUser>();

            members.Add(KiiUser.CreateByUri(new Uri("kiicloud://users/abcd")));
            members.Add(KiiUser.CreateByUri(new Uri("kiicloud://users/efgh")));
            Kii.Group(null, members);
        }
        private IEnumerator TestStep()
        {
            string  username = StringUtils.RandomAlphabetic(20);
            string  password = StringUtils.RandomAlphabetic(20);
            KiiUser user     = KiiUser.BuilderWithName(username).Build();
            var     task     = RegisterUser(user, password, (KiiUser u, Exception e) => {
                if (e != null)
                {
                    throw new TestFailException();
                }
                Debug.Log("Register user.");
            });

            yield return(StartCoroutine(task));

            // create group
            string   groupname = StringUtils.RandomAlphabetic(20);
            KiiGroup group     = Kii.Group(groupname);

            Exception        exp      = null;
            bool             endFlag  = false;
            KiiGroupCallback callback = (KiiGroup grp, Exception e) => {
                exp     = e;
                endFlag = true;
            };

            group.Save(callback);
            while (!endFlag)
            {
                yield return(new WaitForSeconds(1));
            }

            if (exp != null)
            {
                throw new TestFailException();
            }

            // refresh
            KiiGroup groupWithId = KiiGroup.GroupWithID(group.ID);

            exp     = null;
            endFlag = false;
            groupWithId.Refresh(callback);
            while (!endFlag)
            {
                yield return(new WaitForSeconds(1));
            }
            if (exp != null)
            {
                throw new TestFailException();
            }
            if (!groupname.Equals(groupWithId.Name))
            {
                throw new TestFailException();
            }
            resultFlag = true;
        }
コード例 #16
0
        public void Test_0301_Delete_no_ID()
        {
            this.LogIn();

            KiiGroup group = Kii.Group("newGroup");

            // set Response
            client.AddResponse(204, "");
            group.Delete();
        }
コード例 #17
0
        public void Test_0201_Refresh_no_ID()
        {
            this.LogIn();

            KiiGroup group = Kii.Group("newGroup");

            // set Response
            this.SetStandardRefreshResponse(client);
            group.Refresh();
        }
コード例 #18
0
        public void Test_0101_ListMembers_NoID()
        {
            this.LogIn();

            KiiGroup group = Kii.Group("newGroup");

            // set Response
            this.SetStandardListResponse(client);
            group.ListMembers();
        }
コード例 #19
0
        public void Test_0402_ChangeName_no_id()
        {
            this.LogIn();

            KiiGroup group = Kii.Group("groupName");

            // set Response
            client.AddResponse(204, "");
            group.ChangeName("newGroupName");
        }
コード例 #20
0
        public void Test_0508_AddAndRemoveUser_null_KiiUser_instance()
        {
            // Prepare KiiUser for member
            KiiUser memberUser1 = KiiUser.CreateByUri(new Uri("kiicloud://users/" + TextUtils.generateUUID()));
            KiiUser memberUser2 = KiiUser.CreateByUri(new Uri("kiicloud://users/" + TextUtils.generateUUID()));
            KiiUser nullUser    = null;

            // Prepare group
            string   groupName = TextUtils.randomAlphaNumeric(10);
            string   groupID   = TextUtils.randomAlphaNumeric(26);
            KiiGroup group     = Kii.Group(groupName);

            SDKTestHack.SetField(group, "mId", groupID);
            SDKTestHack.SetField(group, "mOwnerId", TextUtils.generateUUID());
            group.AddUser(memberUser1);
            group.RemoveUser(memberUser2);
            // Check value
            HashSet <KiiUser> addUsers    = (HashSet <KiiUser>)SDKTestHack.GetField(group, "addUsers");
            HashSet <KiiUser> removeUsers = (HashSet <KiiUser>)SDKTestHack.GetField(group, "removeUsers");

            Assert.AreEqual(1, addUsers.Count);
            Assert.AreEqual(1, removeUsers.Count);

            // Add user
            try
            {
                group.AddUser(nullUser);
                Assert.Fail("Should throw ArgumentException");
            }
            catch (ArgumentException)
            {
                // Pass
            }
            // Check value
            addUsers    = (HashSet <KiiUser>)SDKTestHack.GetField(group, "addUsers");
            removeUsers = (HashSet <KiiUser>)SDKTestHack.GetField(group, "removeUsers");
            Assert.AreEqual(1, addUsers.Count);
            Assert.AreEqual(1, removeUsers.Count);

            // Remove user
            try
            {
                group.RemoveUser(nullUser);
                Assert.Fail("Should throw ArgumentException");
            }
            catch (ArgumentException)
            {
                // Pass
            }
            // Check value
            addUsers    = (HashSet <KiiUser>)SDKTestHack.GetField(group, "addUsers");
            removeUsers = (HashSet <KiiUser>)SDKTestHack.GetField(group, "removeUsers");
            Assert.AreEqual(1, addUsers.Count);
            Assert.AreEqual(1, removeUsers.Count);
        }
コード例 #21
0
        public void Test_0400_Group()
        {
            Kii.Initialize("ee573743", "5eb7b8bc1b4e4c98e659431c69cef8d4", Kii.Site.US);
            List <KiiUser> members = new List <KiiUser>();

            members.Add(KiiUser.CreateByUri(new Uri("kiicloud://users/abcd")));
            members.Add(KiiUser.CreateByUri(new Uri("kiicloud://users/efgh")));
            KiiGroup group = Kii.Group("group1", members);

            Assert.AreEqual("group1", group.Name);
        }
コード例 #22
0
        public void Test_GroupScope()
        {
            KiiGroup group = Kii.Group("test_group");

            group.Save();
            for (int i = 0; i < 51; i++)
            {
                group.Topic("user_topic" + i).Save();
            }

            CountDownLatch           cd     = new CountDownLatch(1);
            KiiListResult <KiiTopic> topics = null;
            Exception exception             = null;

            group.ListTopics((KiiListResult <KiiTopic> t, Exception e) => {
                topics    = t;
                exception = e;
                cd.Signal();
            });
            if (!cd.Wait(new TimeSpan(0, 0, 0, 20)))
            {
                Assert.Fail("Callback not fired.");
            }
            Assert.IsNull(exception);
            Assert.IsTrue(topics.HasNext);
            Assert.IsNotNull(topics.PaginationKey);
            Assert.AreEqual(50, topics.Result.Count);

            string paginationKey = topics.PaginationKey;

            cd        = new CountDownLatch(1);
            topics    = null;
            exception = null;

            group.ListTopics(paginationKey, (KiiListResult <KiiTopic> t, Exception e) => {
                topics    = t;
                exception = e;
                cd.Signal();
            });
            if (!cd.Wait(new TimeSpan(0, 0, 0, 20)))
            {
                Assert.Fail("Callback not fired.");
            }

            Assert.IsNull(exception);
            Assert.IsFalse(topics.HasNext);
            Assert.IsNull(topics.PaginationKey);
            Assert.AreEqual(1, topics.Result.Count);
        }
コード例 #23
0
        public void Test_0002_Save_broken_json()
        {
            this.LogIn();

            KiiGroup group = Kii.Group("testGroup");

            KiiUser user = KiiUser.CreateByUri(new Uri("kiicloud://users/user1234"));

            group.AddUser(user);

            // set Response
            client.AddResponse(200, "{}");

            group.Save();
        }
コード例 #24
0
        public void Test_0001_Save_server_error()
        {
            this.LogIn();

            KiiGroup group = Kii.Group("testGroup");

            KiiUser user = KiiUser.CreateByUri(new Uri("kiicloud://users/user1234"));

            group.AddUser(user);

            // set Response
            client.AddResponse(new CloudException(400, "{}"));

            group.Save();
        }
コード例 #25
0
        public void Test_0000_Save()
        {
            this.LogIn();

            KiiGroup group = Kii.Group("testGroup");

            KiiUser user = KiiUser.CreateByUri(new Uri("kiicloud://users/user1234"));

            group.AddUser(user);

            // set Response
            this.SetStandardSaveResponse(client);

            group.Save();

            Assert.AreEqual("0c4375c7-16f5-4ce6-9cd3-ec24bc0519e9", group.ID);
        }
コード例 #26
0
        public void Test_0509_AddAndRemoveUser_notsaved_group()
        {
            // Prepare KiiUser for member
            KiiUser memberUser1 = KiiUser.CreateByUri(new Uri("kiicloud://users/" + TextUtils.generateUUID()));
            KiiUser memberUser2 = KiiUser.CreateByUri(new Uri("kiicloud://users/" + TextUtils.generateUUID()));

            // Prepare group
            string   groupName = TextUtils.randomAlphaNumeric(10);
            string   groupID   = TextUtils.randomAlphaNumeric(26);
            KiiGroup group     = Kii.Group(groupName);
            // Check value
            HashSet <KiiUser> addUsers    = (HashSet <KiiUser>)SDKTestHack.GetField(group, "addUsers");
            HashSet <KiiUser> removeUsers = (HashSet <KiiUser>)SDKTestHack.GetField(group, "removeUsers");

            Assert.AreEqual(0, addUsers.Count);
            Assert.AreEqual(0, removeUsers.Count);

            // Add user
            group.AddUser(memberUser1);
            // Check value
            addUsers    = (HashSet <KiiUser>)SDKTestHack.GetField(group, "addUsers");
            removeUsers = (HashSet <KiiUser>)SDKTestHack.GetField(group, "removeUsers");
            Assert.AreEqual(1, addUsers.Count);
            Assert.AreEqual(0, removeUsers.Count);

            // Remove user
            group.RemoveUser(memberUser2);
            // Check value
            addUsers    = (HashSet <KiiUser>)SDKTestHack.GetField(group, "addUsers");
            removeUsers = (HashSet <KiiUser>)SDKTestHack.GetField(group, "removeUsers");
            Assert.AreEqual(1, addUsers.Count);
            Assert.AreEqual(0, removeUsers.Count);

            // Remove user for user1
            group.RemoveUser(memberUser1);
            // Check value
            addUsers    = (HashSet <KiiUser>)SDKTestHack.GetField(group, "addUsers");
            removeUsers = (HashSet <KiiUser>)SDKTestHack.GetField(group, "removeUsers");
            Assert.AreEqual(0, addUsers.Count);
            Assert.AreEqual(0, removeUsers.Count);
        }
コード例 #27
0
        public void Test_GroupScopeNoIDASync()
        {
            LogIn("test-user-00001");
            client.AddResponse(new UnauthorizedException("", null, ""));
            CountDownLatch           cd     = new CountDownLatch(1);
            KiiListResult <KiiTopic> topics = null;
            Exception exception             = null;

            Kii.Group("group").ListTopics((KiiListResult <KiiTopic> t, Exception e) => {
                topics    = t;
                exception = e;
                cd.Signal();
            });
            if (!cd.Wait(new TimeSpan(0, 0, 0, 3)))
            {
                Assert.Fail("Callback not fired.");
            }
            Assert.IsNull(topics);
            Assert.IsNotNull(exception);
            Assert.IsInstanceOfType(typeof(InvalidOperationException), exception);
        }
コード例 #28
0
        public void Test_0101_RemoveMyself_FromGroupMember()
        {
            // Create KiiUser for group member
            long    milliseconds = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond;
            string  memberName   = "kiiGroupMember-" + milliseconds;
            KiiUser member       = KiiUser.BuilderWithName(memberName).Build();

            member.Register("pass1234");
            string memberToken = KiiUser.AccessToken;

            // Create KiiUser for group member
            string  ownerName = "kiiGroupOwner-" + milliseconds;
            KiiUser owner     = KiiUser.BuilderWithName(ownerName).Build();

            owner.Register("pass1234");

            // Create group
            KiiGroup group = Kii.Group("testGroup");

            // Add member and save
            group.AddUser(member);
            group.Save();

            // Auth as member
            KiiUser.LogOut();
            KiiUser.LoginWithToken(memberToken);

            // Try to remove myself from the group
            group.RemoveUser(KiiUser.CurrentUser);
            group.Save();

            // Check value
            HashSet <KiiUser> addUsers    = (HashSet <KiiUser>)SDKTestHack.GetField(group, "addUsers");
            HashSet <KiiUser> removeUsers = (HashSet <KiiUser>)SDKTestHack.GetField(group, "removeUsers");

            Assert.AreEqual(0, addUsers.Count);
            Assert.AreEqual(0, removeUsers.Count);
        }
コード例 #29
0
        public void Test_GroupScope()
        {
            KiiGroup group = Kii.Group("test_group");

            group.Save();
            group.Topic("group_topic").Save();

            CountDownLatch cd        = new CountDownLatch(1);
            bool?          existence = null;
            Exception      exception = null;

            group.Topic("group_topic").Exists((bool?result, Exception e) => {
                exception = e;
                existence = result;
                cd.Signal();
                return;
            });
            if (!cd.Wait(new TimeSpan(0, 0, 0, 20)))
            {
                Assert.Fail("Callback not fired.");
            }
            Assert.IsNull(exception);
            Assert.IsTrue(existence.Value);
        }
コード例 #30
0
        public void Test_0502_CreateGroup_with_member()
        {
            // Create test user for group owner
            string  userID = TextUtils.generateUUID();
            KiiUser user   = KiiUser.CreateByUri(new Uri("kiicloud://users/" + userID));

            SDKTestHack.SetField(Kii.Instance, "mLoginUser", user);
            string authToken = TextUtils.generateUUID();

            KiiCloudEngine.UpdateAccessToken(authToken);

            // Prepare KiiUser for member
            string  memberID = TextUtils.generateUUID();
            KiiUser member   = KiiUser.CreateByUri(new Uri("kiicloud://users/" + memberID));

            // Prepare group
            string   groupName = TextUtils.randomAlphaNumeric(10);
            KiiGroup group     = Kii.Group(groupName, new List <KiiUser>()
            {
                member
            });

            // Check value
            HashSet <KiiUser> addUsers    = (HashSet <KiiUser>)SDKTestHack.GetField(group, "addUsers");
            HashSet <KiiUser> removeUsers = (HashSet <KiiUser>)SDKTestHack.GetField(group, "removeUsers");

            Assert.AreEqual(1, addUsers.Count);
            Assert.AreEqual(0, removeUsers.Count);

            // Prepare mock response for creating group
            string     groupID   = TextUtils.randomAlphaNumeric(26);
            JsonObject resEntity = new JsonObject(new Dictionary <string, object>()
            {
                { "groupID", groupID },
                { "notFoundUsers", new JsonArray() }
            });

            client.AddResponse(201, resEntity.ToString());

            // Save group
            group.Save();

            // Verify request
            Assert.AreEqual(1, client.RequestUrl.Count);
            Assert.AreEqual(1, client.RequestHeader.Count);
            string requestUrl = AppUtil.getUrlOfSite(AppConst.APP_SITE, AppConst.APP_ID, "groups");

            Assert.AreEqual(requestUrl, client.RequestUrl[0]);
            Assert.AreEqual("POST", client.RequestMethod[0].ToString());
            IList <MockHttpHeaderList> headers = client.RequestHeader;

            Assert.AreEqual(AppConst.APP_ID, client.RequestHeader[0]["X-Kii-AppID"]);
            Assert.AreEqual(AppConst.APP_KEY, client.RequestHeader[0]["X-Kii-AppKey"]);
            Assert.AreEqual("Bearer " + authToken, client.RequestHeader[0]["Authorization"]);

            JsonObject requestBody = new JsonObject(client.RequestBody[0]);

            Assert.AreEqual(3, requestBody.Length());
            Assert.AreEqual(groupName, requestBody.GetString("name"));
            Assert.AreEqual(userID, requestBody.GetString("owner"));
            Assert.AreEqual(1, requestBody.GetJsonArray("members").Length());
            Assert.AreEqual(memberID, requestBody.GetJsonArray("members").GetString(0));

            // Verify
            Assert.AreEqual(groupID, group.ID);
            Assert.AreEqual(user.ID, group.Owner.ID);

            addUsers    = (HashSet <KiiUser>)SDKTestHack.GetField(group, "addUsers");
            removeUsers = (HashSet <KiiUser>)SDKTestHack.GetField(group, "removeUsers");
            Assert.AreEqual(0, addUsers.Count);
            Assert.AreEqual(0, removeUsers.Count);
        }