public void SubsitutesVariableNames(string template, IDictionary <string, string> variables, string output)
        {
            var engine = new MockEngine();
            var task   = new GenerateFileFromTemplate
            {
                BuildEngine = engine,
            };

            Assert.Equal(output, task.Replace(template, variables));
            Assert.Empty(engine.Warnings);
        }
        public void WarnsWhenExpectingClosingBrace()
        {
            var engine = new MockEngine();
            var task   = new GenerateFileFromTemplate
            {
                BuildEngine = engine,
            };

            Assert.Equal("Hello ${Greeting!", task.Replace("Hello ${Greeting!", new Dictionary <string, string>()));
            var warning = Assert.Single(engine.Warnings);

            Assert.Contains("Expected closing bracket", warning.Message);
        }
        public void WarnsForMissingVariableNames()
        {
            var engine = new MockEngine();
            var task   = new GenerateFileFromTemplate
            {
                BuildEngine = engine,
            };

            Assert.Equal("Hello !", task.Replace("Hello ${World}!", new Dictionary <string, string>()));
            var warning = Assert.Single(engine.Warnings);

            Assert.Contains("No property value", warning.Message);
        }