예제 #1
0
        public async Task QueryFollowersAndFollowees()
        {
            await LCUser.BecomeWithSessionToken(user2.SessionToken);

            LCQuery <LCObject>            query   = user2.FolloweeQuery();
            ReadOnlyCollection <LCObject> results = await query.Find();

            Assert.Greater(results.Count, 0);
            foreach (LCObject item in results)
            {
                Assert.IsTrue(item["followee"] is LCObject);
                Assert.AreEqual(user1.ObjectId, (item["followee"] as LCObject).ObjectId);
            }

            query   = user2.FollowerQuery();
            results = await query.Find();

            Assert.Greater(results.Count, 0);
            foreach (LCObject item in results)
            {
                Assert.IsTrue(item["follower"] is LCObject);
                Assert.AreEqual(user3.ObjectId, (item["follower"] as LCObject).ObjectId);
            }

            LCFollowersAndFollowees followersAndFollowees = await user2.GetFollowersAndFollowees(true, true, true);

            Assert.AreEqual(followersAndFollowees.FollowersCount, 1);
            Assert.AreEqual(followersAndFollowees.FolloweesCount, 1);
        }
예제 #2
0
        public async Task Unfollow()
        {
            await LCUser.BecomeWithSessionToken(user2.SessionToken);

            await user2.Unfollow(user1.ObjectId);

            await LCUser.BecomeWithSessionToken(user3.SessionToken);

            await user3.Unfollow(user1.ObjectId);
        }
예제 #3
0
        public async Task LoginBySessionToken()
        {
            await LCUser.Logout();

            string sessionToken = "luo2fpl4qij2050e7enqfz173";
            await LCUser.BecomeWithSessionToken(sessionToken);

            LCUser current = await LCUser.GetCurrent();

            Assert.NotNull(current.ObjectId);
        }
예제 #4
0
        public async Task Follow()
        {
            await LCUser.BecomeWithSessionToken(user2.SessionToken);

            Dictionary <string, object> attrs = new Dictionary <string, object> {
                { "score", 100 }
            };
            await user2.Follow(user1.ObjectId, attrs);

            await LCUser.BecomeWithSessionToken(user3.SessionToken);

            await user3.Follow(user2.ObjectId);
        }
예제 #5
0
    public async Task <LCUser> Login(string token)
    {
        try {
            User = await LCUser.BecomeWithSessionToken(token);

            IMClient = new LCIMClient(User);
            await IMClient.Open();

            return(User);
        } catch (LCException e) {
            LCUtils.LogException(e);
            throw e;
        }
    }
예제 #6
0
        public async Task Init()
        {
            user1 = await SignUp();

            user2 = await SignUp();

            Dictionary <string, object> attrs = new Dictionary <string, object> {
                { "group", "sport" }
            };
            await LCFriendship.Request(user1.ObjectId, attrs);

            await SignUp();

            await LCFriendship.Request(user1.ObjectId);

            await LCUser.BecomeWithSessionToken(user1.SessionToken);
        }
예제 #7
0
        public async Task Send()
        {
            await LCUser.BecomeWithSessionToken(user1.SessionToken);

            // 给粉丝发送状态
            LCStatus status = new LCStatus {
                Data = new Dictionary <string, object> {
                    { "image", "xxx.jpg" },
                    { "content", "hello, world" }
                }
            };
            await LCStatus.SendToFollowers(status);

            // 给某个用户发送私信
            LCStatus privateStatus = new LCStatus {
                Data = new Dictionary <string, object> {
                    { "image", "xxx.jpg" },
                    { "content", "hello, game" }
                }
            };
            await LCStatus.SendPrivately(privateStatus, user2.ObjectId);
        }
예제 #8
0
        public async Task Query()
        {
            await Task.Delay(5000);

            await LCUser.BecomeWithSessionToken(user2.SessionToken);

            LCStatusCount statusCount = await LCStatus.GetCount(LCStatus.InboxTypeDefault);

            Assert.Greater(statusCount.Total, 0);
            LCStatusCount privateCount = await LCStatus.GetCount(LCStatus.InboxTypePrivate);

            Assert.Greater(privateCount.Total, 0);

            LCStatusQuery query = new LCStatusQuery(LCStatus.InboxTypeDefault);
            ReadOnlyCollection <LCStatus> statuses = await query.Find();

            foreach (LCStatus status in statuses)
            {
                Assert.AreEqual((status["source"] as LCObject).ObjectId, user1.ObjectId);
                await status.Delete();
            }

            await LCStatus.ResetUnreadCount(LCStatus.InboxTypePrivate);
        }