mirror of
https://github.com/FabInfra/capnproto-dotnetcore_Runtime.git
synced 2025-03-12 14:51:41 +01:00
more tests
This commit is contained in:
parent
2bfa620a2d
commit
4bf0e970c2
@ -449,6 +449,7 @@ namespace Capnp.Net.Runtime.Tests.GenImpls
|
|||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
|
Assert.IsFalse(IsDisposed);
|
||||||
IsDisposed = true;
|
IsDisposed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -962,7 +962,7 @@ namespace Capnp.Net.Runtime.Tests
|
|||||||
}
|
}
|
||||||
|
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
public void StructReadCap()
|
public void StructReadCap1()
|
||||||
{
|
{
|
||||||
var dss = DynamicSerializerState.CreateForRpc();
|
var dss = DynamicSerializerState.CreateForRpc();
|
||||||
dss.SetStruct(0, 3);
|
dss.SetStruct(0, 3);
|
||||||
@ -978,6 +978,15 @@ namespace Capnp.Net.Runtime.Tests
|
|||||||
Assert.ThrowsException<Rpc.RpcException>(() => dss.ReadCap(2));
|
Assert.ThrowsException<Rpc.RpcException>(() => dss.ReadCap(2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[TestMethod]
|
||||||
|
public void StructReadCap2()
|
||||||
|
{
|
||||||
|
var dss = DynamicSerializerState.CreateForRpc();
|
||||||
|
dss.SetListOfStructs(1, 1, 1);
|
||||||
|
dss.Allocate();
|
||||||
|
Assert.ThrowsException<InvalidOperationException>(() => dss.ReadCap(0));
|
||||||
|
}
|
||||||
|
|
||||||
[TestMethod]
|
[TestMethod]
|
||||||
public void Rewrap()
|
public void Rewrap()
|
||||||
{
|
{
|
||||||
@ -1078,5 +1087,56 @@ namespace Capnp.Net.Runtime.Tests
|
|||||||
Assert.ThrowsException<ArgumentOutOfRangeException>(() => dss2.ListBuildStruct<TestSerializerStateStruct11>(-1));
|
Assert.ThrowsException<ArgumentOutOfRangeException>(() => dss2.ListBuildStruct<TestSerializerStateStruct11>(-1));
|
||||||
Assert.ThrowsException<ArgumentOutOfRangeException>(() => dss2.ListBuildStruct<TestSerializerStateStruct11>(2));
|
Assert.ThrowsException<ArgumentOutOfRangeException>(() => dss2.ListBuildStruct<TestSerializerStateStruct11>(2));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[TestMethod]
|
||||||
|
public void LinkObject()
|
||||||
|
{
|
||||||
|
var mb = MessageBuilder.Create();
|
||||||
|
var dss = mb.CreateObject<DynamicSerializerState>();
|
||||||
|
dss.SetStruct(0, 4);
|
||||||
|
var s1 = mb.CreateObject<SomeStruct.WRITER>();
|
||||||
|
s1.SomeText = "foo";
|
||||||
|
s1.MoreText = "bar";
|
||||||
|
dss.LinkObject(0, s1);
|
||||||
|
var s2 = mb.CreateObject<SomeStruct.WRITER>();
|
||||||
|
s2.SomeText = "baz";
|
||||||
|
s2.MoreText = "foobar";
|
||||||
|
var d = (DeserializerState)s2;
|
||||||
|
dss.LinkObject(1, d);
|
||||||
|
var s3 = mb.CreateObject<SomeStruct.WRITER>();
|
||||||
|
s3.SomeText = "0";
|
||||||
|
var s4 = mb.CreateObject<SomeStruct.WRITER>();
|
||||||
|
s4.SomeText = "1";
|
||||||
|
var arr = new SomeStruct.WRITER[] { s3, s4 };
|
||||||
|
dss.LinkObject(2, arr);
|
||||||
|
Assert.ThrowsException<InvalidCapabilityInterfaceException>(() => dss.LinkObject(3, new object()));
|
||||||
|
|
||||||
|
var t1 = dss.BuildPointer(0).Rewrap<SomeStruct.WRITER>();
|
||||||
|
Assert.AreEqual("foo", t1.SomeText);
|
||||||
|
Assert.AreEqual("bar", t1.MoreText);
|
||||||
|
var t2 = dss.BuildPointer(1).Rewrap<SomeStruct.WRITER>();
|
||||||
|
Assert.AreEqual("baz", t2.SomeText);
|
||||||
|
Assert.AreEqual("foobar", t2.MoreText);
|
||||||
|
var l = dss.BuildPointer(2).Rewrap<ListOfPointersSerializer<SomeStruct.WRITER>>();
|
||||||
|
Assert.AreEqual(2, l.Count);
|
||||||
|
Assert.AreEqual("0", l[0].SomeText);
|
||||||
|
Assert.AreEqual("1", l[1].SomeText);
|
||||||
|
Assert.AreEqual(ObjectKind.Nil, dss.BuildPointer(3).Kind);
|
||||||
|
}
|
||||||
|
|
||||||
|
[TestMethod]
|
||||||
|
public void Disposing()
|
||||||
|
{
|
||||||
|
var mb = MessageBuilder.Create();
|
||||||
|
var dss = mb.CreateObject<DynamicSerializerState>();
|
||||||
|
dss.Dispose();
|
||||||
|
dss.Dispose();
|
||||||
|
var dss2 = DynamicSerializerState.CreateForRpc();
|
||||||
|
var cap = new TestInterfaceImpl2();
|
||||||
|
dss2.ProvideCapability(cap);
|
||||||
|
dss2.Dispose();
|
||||||
|
Assert.IsTrue(cap.IsDisposed);
|
||||||
|
dss2.Dispose();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1404,7 +1404,7 @@ namespace Capnp
|
|||||||
{
|
{
|
||||||
foreach (var cap in Caps)
|
foreach (var cap in Caps)
|
||||||
{
|
{
|
||||||
cap?.Release();
|
cap.Release();
|
||||||
}
|
}
|
||||||
|
|
||||||
Caps.Clear();
|
Caps.Clear();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user