csharp-sdk-upm/Storage/Storage.Test/RelationTest.cs

65 lines
2.1 KiB
C#
Raw Normal View History

using NUnit.Framework;
using System.Threading.Tasks;
using System.Collections.ObjectModel;
using LeanCloud.Storage;
2020-04-28 17:04:46 +08:00
namespace Storage.Test {
public class RelationTest {
[SetUp]
public void SetUp() {
2021-04-07 18:08:17 +08:00
Utils.SetUp();
}
[TearDown]
public void TearDown() {
2021-04-07 18:08:17 +08:00
Utils.TearDown();
}
[Test]
public async Task AddAndRemove() {
LCObject parent = new LCObject("Parent");
LCObject c1 = new LCObject("Child");
parent.AddRelation("children", c1);
LCObject c2 = new LCObject("Child");
parent.AddRelation("children", c2);
await parent.Save();
LCRelation<LCObject> relation = parent["children"] as LCRelation<LCObject>;
LCQuery<LCObject> query = relation.Query;
int count = await query.Count();
TestContext.WriteLine($"count: {count}");
Assert.AreEqual(count, 2);
parent.RemoveRelation("children", c2);
await parent.Save();
int count2 = await query.Count();
TestContext.WriteLine($"count: {count2}");
Assert.AreEqual(count2, 1);
}
[Test]
public async Task Query() {
LCQuery<LCObject> query = new LCQuery<LCObject>("Parent");
LCObject parent = await query.Get("5e13112021b47e0070ed0922");
LCRelation<LCObject> relation = parent["children"] as LCRelation<LCObject>;
TestContext.WriteLine(relation.Key);
TestContext.WriteLine(relation.Parent);
TestContext.WriteLine(relation.TargetClass);
Assert.NotNull(relation.Key);
Assert.NotNull(relation.Parent);
Assert.NotNull(relation.TargetClass);
LCQuery<LCObject> relationQuery = relation.Query;
ReadOnlyCollection<LCObject> results = await relationQuery.Find();
foreach (LCObject item in results) {
TestContext.WriteLine(item.ObjectId);
Assert.NotNull(item.ObjectId);
}
}
}
}