private static string PerformNewLineTest(string value, bool hasEscapeSequences) { KvObject convertedKv; var kv = new KvObject("newLineTestCase", value); var options = new KvSerializerOptions { HasEscapeSequences = hasEscapeSequences }; string text; using (var ms = new MemoryStream()) { var serializer = KvSerializer.Create(KvSerializationFormat.KeyValues1Text); serializer.Serialize(ms, kv, options); ms.Seek(0, SeekOrigin.Begin); text = Encoding.ASCII.GetString(ms.ToArray(), 0, (int)ms.Length); convertedKv = serializer.Deserialize(ms, options); } Assert.That((string)convertedKv.Value, Is.EqualTo(value)); return(text); }
public Kv1TokenReader(TextReader textReader, KvSerializerOptions options) { Require.NotNull(textReader, nameof(textReader)); Require.NotNull(options, nameof(options)); _textReader = textReader; _options = options; }
public void SetUp() { var options = new KvSerializerOptions { HasEscapeSequences = true }; using (var stream = TestDataHelper.OpenResource("Text.escaped_backslash.vdf")) _data = KvSerializer.Create(KvSerializationFormat.KeyValues1Text).Deserialize(stream, options); }
public void SetUp() { var options = new KvSerializerOptions { FileLoader = new StubIncludedFileLoader() }; using (var stream = TestDataHelper.OpenResource("Text.kv_with_include.vdf")) _data = KvSerializer.Create(KvSerializationFormat.KeyValues1Text).Deserialize(stream, options); }
public Kv1TextSerializer(Stream stream, KvSerializerOptions options) { Require.NotNull(stream, nameof(stream)); Require.NotNull(options, nameof(options)); _options = options; _writer = new StreamWriter(stream, Encoding.UTF8, 1024, true) { NewLine = "\n" }; }
public Kv1TextReader(TextReader textReader, IParsingVisitationListener listener, KvSerializerOptions options) { Require.NotNull(textReader, nameof(textReader)); Require.NotNull(listener, nameof(listener)); Require.NotNull(options, nameof(options)); _listener = listener; _options = options; _conditionEvaluator = new KvConditionEvaluator(options.Conditions); _tokenReader = new Kv1TokenReader(textReader, options); _stateMachine = new Kv1TextReaderStateMachine(); }
public Kv1BinarySerializer(Stream stream, KvSerializerOptions options) { Require.NotNull(stream, nameof(stream)); _isVbkv = options.HasVbkvHeader; if (_isVbkv) { _terminator = Kv1BinaryNodeType.EndVbkv; } _writer = new BinaryWriter(new MemoryStream(), Encoding.UTF8); _realWriter = new BinaryWriter(stream, Encoding.UTF8, leaveOpen: true); }
public void ThrowsExceptionWhenHasEscapeSequences() { var options = new KvSerializerOptions { HasEscapeSequences = true }; using (var stream = TestDataHelper.OpenResource("Text.escaped_garbage.vdf")) { Assert.That( () => KvSerializer.Create(KvSerializationFormat.KeyValues1Text).Deserialize(stream, options), Throws.Exception.TypeOf <KeyValueException>() .With.InnerException.TypeOf <InvalidDataException>() .With.Message.EqualTo(@"Unknown escaped character '\7'.")); } }
public Kv1BinaryReader(Stream stream, IVisitationListener listener, KvSerializerOptions options) { Require.NotNull(stream, nameof(stream)); Require.NotNull(listener, nameof(listener)); _isVbkv = options.HasVbkvHeader; if (_isVbkv) { _terminator = Kv1BinaryNodeType.EndVbkv; } if (!stream.CanSeek) { throw new ArgumentException("Stream must be seekable", nameof(stream)); } _stream = stream; _listener = listener; _reader = new BinaryReader(stream, Encoding.UTF8, true); }
KvObject IKvTextReader.Read(string resourceName, KvSerializerOptions options) { using (var stream = TestDataHelper.OpenResource(resourceName)) return(KvSerializer.Create(KvSerializationFormat.KeyValues1Text).Deserialize(stream, options)); }
public static KvObject Deserialize(this KvSerializer serializer, byte[] data, KvSerializerOptions options = null) { using (var ms = new MemoryStream(data)) { return(serializer.Deserialize(ms, options)); } }
public static TObject Deserialize <TObject>(this KvSerializer serializer, string text, KvSerializerOptions options = null) { using (var ms = new MemoryStream()) using (var writer = new StreamWriter(ms)) { writer.Write(text); writer.Flush(); ms.Seek(0, SeekOrigin.Begin); return(serializer.Deserialize <TObject>(ms, options)); } }
T IKvTextReader.Read <T>(string resourceName, KvSerializerOptions options) { var text = TestDataHelper.ReadTextResource(resourceName); return(_serializer.Deserialize <T>(text, options)); }