public void EntityReaderWriter_Roundtrip_None_ThrowsArgumentException() { var registry = new QueryEngineRegistry(new MockQueryEngineRegistry()); var def = new OtherDefinitionEntity(new Uri("io:/1"), Expression.Default(typeof(object)), null); var stream = new MemoryStream(); Write(); stream.Position = 0; Read(); void Write() { using var writer = new EntityWriter(stream, new SerializationPolicy(DefaultExpressionPolicy.Instance, Versioning.v1)); writer.WriteHeader(); writer.Save(def); } void Read() { using var reader = new EntityReader(stream, registry, new SerializationPolicy(DefaultExpressionPolicy.Instance, Versioning.v1)); reader.ReadHeader(); AssertEx.ThrowsException <ArgumentException>(() => reader.Load(ReactiveEntityKind.None), ex => Assert.AreEqual("kind", ex.ParamName)); } }
public void EntityReaderWriter_Roundtrip_Definitions() { var registry = new QueryEngineRegistry(new MockQueryEngineRegistry()); var def = new OtherDefinitionEntity(new Uri("io:/1"), Expression.Default(typeof(object)), null); var stream = new MemoryStream(); using (var writer = new EntityWriter(stream, new SerializationPolicy(DefaultExpressionPolicy.Instance, Versioning.v1))) { writer.WriteHeader(); writer.Save(def); writer.Dispose(); } foreach (var kind in new[] { ReactiveEntityKind.Observable, ReactiveEntityKind.Observer, ReactiveEntityKind.StreamFactory, ReactiveEntityKind.Other, }) { stream.Position = 0; var rt = default(ReactiveEntity); using (var reader = new EntityReader(stream, registry, new SerializationPolicy(DefaultExpressionPolicy.Instance, Versioning.v1))) { reader.ReadHeader(); rt = reader.Load(kind); reader.ReadFooter(); } Assert.AreEqual(kind, rt.Kind); Assert.AreEqual(def.Uri, rt.Uri); AssertEqual(def.Expression, rt.Expression); Assert.AreEqual(def.State, rt.State); } }