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.GetBuffer(), 0, (int)ms.Length); convertedKv = serializer.Deserialize(ms, options); } Assert.That((string)convertedKv.Value, Is.EqualTo(value)); return(text); }
KVObject IKVTextReader.Read(string resourceName, KVSerializerOptions options) { using (var stream = TestDataHelper.OpenResource(resourceName)) { return(KVSerializer.Deserialize(stream, options)); } }
KVObject IKVTextReader.Read(string resourceName, KVSerializerOptions options) { using (var stream = TestDataHelper.OpenResource(resourceName)) { return(KVSerializer.Create(KVSerializationFormat.KeyValues1Text).Deserialize(stream, options)); } }
public KV1TokenReader(TextReader textReader, KVSerializerOptions options) { Require.NotNull(textReader, nameof(textReader)); Require.NotNull(options, nameof(options)); this.textReader = textReader; this.options = options; }
public void SetUp() { var options = new KVSerializerOptions { HasEscapeSequences = true }; using var stream = TestDataHelper.OpenResource("Text.escaped_whitespace.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)); this.options = options; writer = new StreamWriter(stream, Encoding.UTF8, bufferSize: 1024, leaveOpen: true); writer.NewLine = "\n"; }
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 void SetUp() { var options = new KVSerializerOptions { HasEscapeSequences = true }; using (var stream = TestDataHelper.OpenResource("Text.escaped_whitespace.vdf")) { data = KVSerializer.Deserialize(stream, options); } }
public void SetUp() { var options = new KVSerializerOptions { FileLoader = new StubIncludedFileLoader() }; using (var stream = TestDataHelper.OpenResource("Text.kv_with_base.vdf")) { data = KVSerializer.Deserialize(stream, options); } }
public void CanDeserializeFromRandomlyCasedKeys() { var text = TestDataHelper.ReadTextResource("Text.random_case_object.vdf"); var options = new KVSerializerOptions { HasEscapeSequences = true }; var actual = KVSerializer.Create(KVSerializationFormat.KeyValues1Text).Deserialize <DataObject>(text, options); Assert.That(actual.Name, Is.EqualTo("Dota 2")); Assert.That(actual.Summary, Is.EqualTo("Dota 2 is a complex game where you get sworn at\nin Russian all the time.")); Assert.That(actual.Developer, Is.EqualTo("Valve Software")); }
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 escape sequence '\7'.")); }
public void CanDeserializeObjectListAndPropertyName() { var text = TestDataHelper.ReadTextResource("Text.serialization_expected.vdf"); var options = new KVSerializerOptions { HasEscapeSequences = true }; var actual = KVSerializer.Create(KVSerializationFormat.KeyValues1Text).Deserialize <DataObject[]>(text, options); Assert.That(actual[0].Name, Is.EqualTo("Dota 2")); Assert.That(actual[0].Summary, Is.EqualTo("Dota 2 is a complex game where you get sworn at\nin Russian all the time.")); Assert.That(actual[1].Developer, Is.EqualTo("Valve Software")); Assert.That(actual[1].Summary, Is.EqualTo("Known as \"America's #1 war-themed hat simulator\", this game lets you wear stupid items while killing people.")); }
public void ReadsValueWithNullByteWhenBugCompatibilityEnabled() { var options = new KVSerializerOptions { EnableValveNullByteBugBehavior = true, HasEscapeSequences = true, }; KVObject data; using (var stream = TestDataHelper.OpenResource("Text.escaped_garbage.vdf")) { data = KVSerializer.Create(KVSerializationFormat.KeyValues1Text).Deserialize(stream, options); } Assert.That((string)data["key"], Is.EqualTo("abcd")); }
static KVObject ParseResource(string name, string[] conditions) { KVObject data; using (var stream = TestDataHelper.OpenResource(name)) { var options = new KVSerializerOptions(); options.Conditions.Clear(); foreach (var c in conditions) { options.Conditions.Add(c); } data = KVSerializer.Create(KVSerializationFormat.KeyValues1Text).Deserialize(stream, options); } return(data); }
public static KVObject Deserialize(this KVSerializer serializer, byte[] data, KVSerializerOptions options = null) { using var ms = new MemoryStream(data); return(serializer.Deserialize(ms, options)); }
KVObject IKVTextReader.Read(string resourceName, KVSerializerOptions options) { var text = TestDataHelper.ReadTextResource(resourceName); return(KVSerializer.Deserialize(text, options)); }
public KV1TextReader(TextReader textReader, IParsingVisitationListener listener, KVSerializerOptions options) { Require.NotNull(textReader, nameof(textReader)); Require.NotNull(listener, nameof(listener)); Require.NotNull(options, nameof(options)); this.listener = listener; this.options = options; conditionEvaluator = new KVConditionEvaluator(options.Conditions); tokenReader = new KV1TokenReader(textReader, options); stateMachine = new KV1TextReaderStateMachine(); }
public static TObject Deserialize <TObject>(this KVSerializer serializer, byte[] data, KVSerializerOptions options = null) { using (var ms = new MemoryStream(data)) { return(serializer.Deserialize <TObject>(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)); }