using NUnit.Framework; using System; using System.Threading.Tasks; using System.Collections.Generic; using System.Collections.ObjectModel; using LeanCloud; using LeanCloud.Storage; namespace Storage.Test { public class StatusTest { private LCUser user1; private LCUser user2; private LCUser user3; [SetUp] public void SetUp() { LCLogger.LogDelegate += Utils.Print; LCApplication.Initialize("ikGGdRE2YcVOemAaRbgp1xGJ-gzGzoHsz", "NUKmuRbdAhg1vrb2wexYo1jo", "https://ikggdre2.lc-cn-n1-shared.com"); } [TearDown] public void TearDown() { LCLogger.LogDelegate -= Utils.Print; } [Test] [Order(0)] public async Task Init() { user1 = new LCUser { Username = Guid.NewGuid().ToString(), Password = "world" }; await user1.SignUp(); user2 = new LCUser { Username = Guid.NewGuid().ToString(), Password = "world" }; await user2.SignUp(); user3 = new LCUser { Username = Guid.NewGuid().ToString(), Password = "world" }; await user3.SignUp(); } [Test] [Order(1)] public async Task Follow() { await LCUser.BecomeWithSessionToken(user2.SessionToken); Dictionary attrs = new Dictionary { { "score", 100 } }; await user2.Follow(user1.ObjectId, attrs); await LCUser.BecomeWithSessionToken(user3.SessionToken); await user3.Follow(user2.ObjectId); } [Test] [Order(2)] public async Task QueryFollowersAndFollowees() { await LCUser.BecomeWithSessionToken(user2.SessionToken); LCQuery query = user2.FolloweeQuery(); ReadOnlyCollection 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); } [Test] [Order(5)] public async Task Unfollow() { await LCUser.BecomeWithSessionToken(user2.SessionToken); await user2.Unfollow(user1.ObjectId); await LCUser.BecomeWithSessionToken(user3.SessionToken); await user3.Unfollow(user1.ObjectId); } } }