public void ParseKeyedBlocks_unclosed_escape_sequence(string args) { var subject = new BaseFormatterImpl(); var req = new FormatterRequest(new Literal(1, 1, 1, 1, new StringBuilder()), string.Empty, null, args); Assert.Throws <MalformedLiteralException>(() => subject.ParseKeyedBlocks(req, 0)); }
public void ParseArguments( string args, string[] extensionKeys, string[] extensionValues, string[] keys, string[] blocks) { var subject = new BaseFormatterImpl(); var req = new FormatterRequest(new Literal(1, 1, 1, 1, new StringBuilder()), string.Empty, null, args); var actual = subject.ParseArguments(req); Assert.Equal(extensionKeys.Length, actual.Extensions.Count()); Assert.Equal(keys.Length, actual.KeyedBlocks.Count()); for (int i = 0; i < actual.Extensions.ToArray().Length; i++) { var extension = actual.Extensions.ToArray()[i]; Assert.Equal(extensionKeys[i], extension.Extension); Assert.Equal(extensionValues[i], extension.Value); } for (int i = 0; i < actual.KeyedBlocks.ToArray().Length; i++) { var block = actual.KeyedBlocks.ToArray()[i]; Assert.Equal(keys[i], block.Key); Assert.Equal(blocks[i], block.BlockText); } }
public void ParseKeyedBlocks(string args, string[] keys, string[] values) { var subject = new BaseFormatterImpl(); var req = new FormatterRequest(new Literal(1, 1, 1, 1, new StringBuilder()), string.Empty, null, args); // Warm-up subject.ParseKeyedBlocks(req, 0); Benchmark.Start("Parsing keyed blocks..", this.outputHelper); for (int i = 0; i < 10000; i++) { subject.ParseKeyedBlocks(req, 0); } Benchmark.End(this.outputHelper); var actual = subject.ParseKeyedBlocks(req, 0); Assert.Equal(keys.Length, actual.Count()); this.outputHelper.WriteLine("Input: " + args); this.outputHelper.WriteLine("-----"); for (int index = 0; index < actual.ToArray().Length; index++) { var keyedBlock = actual.ToArray()[index]; var expectedKey = keys[index]; var expectedValue = values[index]; Assert.Equal(expectedKey, keyedBlock.Key); Assert.Equal(expectedValue, keyedBlock.BlockText); this.outputHelper.WriteLine("Key: " + keyedBlock.Key); this.outputHelper.WriteLine("Block: " + keyedBlock.BlockText); } }
public void ParseExtensions(string args, string extension, string value, int expectedIndex) { var subject = new BaseFormatterImpl(); int index; var req = new FormatterRequest(new Literal(1, 1, 1, 1, new StringBuilder()), string.Empty, null, args); // Warmup subject.ParseExtensions(req, out index); Benchmark.Start("Parsing extensions a few times (warmed up)", this.outputHelper); for (int i = 0; i < 1000; i++) { subject.ParseExtensions(req, out index); } Benchmark.End(this.outputHelper); var actual = subject.ParseExtensions(req, out index); Assert.NotEmpty(actual); var first = actual.First(); Assert.Equal(extension, first.Extension); Assert.Equal(value, first.Value); Assert.Equal(expectedIndex, index); }
public void ParseArguments_invalid(string args) { var subject = new BaseFormatterImpl(); var req = new FormatterRequest(new Literal(1, 1, 1, 1, new StringBuilder()), string.Empty, null, args); var ex = Assert.Throws <MalformedLiteralException>(() => subject.ParseArguments(req)); this.outputHelper.WriteLine(ex.Message); }
public void ParseExtensions_multiple() { var subject = new BaseFormatterImpl(); int index; var args = " offset:2 code:js "; var expectedIndex = 17; var req = new FormatterRequest(new Literal(1, 1, 1, 1, new StringBuilder()), string.Empty, null, args); var actual = subject.ParseExtensions(req, out index); Assert.NotEmpty(actual); var result = actual.First(); Assert.Equal("offset", result.Extension); Assert.Equal("2", result.Value); result = actual.ElementAt(1); Assert.Equal("code", result.Extension); Assert.Equal("js", result.Value); Assert.Equal(expectedIndex, index); }
public void ParseKeyedBlocks(string args, string[] keys, string[] values) { var subject = new BaseFormatterImpl(); var req = new FormatterRequest(new Literal(1, 1, 1, 1, new StringBuilder()), null, null, args); // Warm-up subject.ParseKeyedBlocks(req, 0); Benchmark.Start("Parsing keyed blocks..", this.outputHelper); for (int i = 0; i < 10000; i++) { subject.ParseKeyedBlocks(req, 0); } Benchmark.End(this.outputHelper); var actual = subject.ParseKeyedBlocks(req, 0); Assert.Equal(keys.Length, actual.Count()); this.outputHelper.WriteLine("Input: " + args); this.outputHelper.WriteLine("-----"); for (int index = 0; index < actual.ToArray().Length; index++) { var keyedBlock = actual.ToArray()[index]; var expectedKey = keys[index]; var expectedValue = values[index]; Assert.Equal(expectedKey, keyedBlock.Key); Assert.Equal(expectedValue, keyedBlock.BlockText); this.outputHelper.WriteLine("Key: " + keyedBlock.Key); this.outputHelper.WriteLine("Block: " + keyedBlock.BlockText); } }
public void ParseExtensions_multiple() { var subject = new BaseFormatterImpl(); int index; var args = " offset:2 code:js "; var expectedIndex = 17; var req = new FormatterRequest(new Literal(1, 1, 1, 1, new StringBuilder()), null, null, args); var actual = subject.ParseExtensions(req, out index); Assert.NotEmpty(actual); var result = actual.First(); Assert.Equal("offset", result.Extension); Assert.Equal("2", result.Value); result = actual.ElementAt(1); Assert.Equal("code", result.Extension); Assert.Equal("js", result.Value); Assert.Equal(expectedIndex, index); }
public void ParseExtensions(string args, string extension, string value, int expectedIndex) { var subject = new BaseFormatterImpl(); int index; var req = new FormatterRequest(new Literal(1, 1, 1, 1, new StringBuilder()), null, null, args); // Warmup subject.ParseExtensions(req, out index); Benchmark.Start("Parsing extensions a few times (warmed up)", this.outputHelper); for (int i = 0; i < 1000; i++) { subject.ParseExtensions(req, out index); } Benchmark.End(this.outputHelper); var actual = subject.ParseExtensions(req, out index); Assert.NotEmpty(actual); var first = actual.First(); Assert.Equal(extension, first.Extension); Assert.Equal(value, first.Value); Assert.Equal(expectedIndex, index); }
public void ParseArguments_invalid(string args) { var subject = new BaseFormatterImpl(); var req = new FormatterRequest(new Literal(1, 1, 1, 1, new StringBuilder()), null, null, args); var ex = Assert.Throws<MalformedLiteralException>(() => subject.ParseArguments(req)); this.outputHelper.WriteLine(ex.Message); }
public void ParseArguments( string args, string[] extensionKeys, string[] extensionValues, string[] keys, string[] blocks) { var subject = new BaseFormatterImpl(); var req = new FormatterRequest(new Literal(1, 1, 1, 1, new StringBuilder()), null, null, args); var actual = subject.ParseArguments(req); Assert.Equal(extensionKeys.Length, actual.Extensions.Count()); Assert.Equal(keys.Length, actual.KeyedBlocks.Count()); for (int i = 0; i < actual.Extensions.ToArray().Length; i++) { var extension = actual.Extensions.ToArray()[i]; Assert.Equal(extensionKeys[i], extension.Extension); Assert.Equal(extensionValues[i], extension.Value); } for (int i = 0; i < actual.KeyedBlocks.ToArray().Length; i++) { var block = actual.KeyedBlocks.ToArray()[i]; Assert.Equal(keys[i], block.Key); Assert.Equal(blocks[i], block.BlockText); } }
public void AssertVariableExists() { var subject = new BaseFormatterImpl(); var args = new Dictionary<string, object> { { "dawg", "wee" } }; Assert.Throws<VariableNotFoundException>(() => subject.AssertVariableExists(args, "Test")); subject.AssertVariableExists(args, "dawg"); }