Example #1
0
        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));
        }
Example #2
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);
            }
        }
Example #3
0
        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);
            }
        }
Example #4
0
        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);
        }
Example #5
0
        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);
        }
Example #6
0
        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");
 }