protected internal virtual void ValidateTransformationParameterException <T>(string transformation) where T : ArgumentException
        {
            this.ValidateArgumentException <T>(() =>
            {
                var newFileTransformCommand = new NewFileTransformCommand
                {
                    Destination    = this.GetOutputPath("Web.config"),
                    Source         = this.GetTestResourcePath("Web.config"),
                    Transformation = transformation
                };

                this.InvokeCommand(newFileTransformCommand);
            }, "transformation");
        }
        public void ProcessRecord_IfThereAreNoTransformations_ShouldTransformCorrectly()
        {
            var fileName    = "Web.config";
            var destination = this.GetOutputPath("Web.Not-Transformed.config");

            var newFileTransformCommand = new NewFileTransformCommand
            {
                Destination    = destination,
                Source         = this.GetTestResourcePath(fileName),
                Transformation = this.GetTestResourcePath("Web.No-Transformation.config")
            };

            this.InvokeCommand(newFileTransformCommand);

            var expectedContent = File.ReadAllText(this.GetTestResourcePath("Web.No-Transformation.Expected.config"));
            var actualContent   = File.ReadAllText(destination);

            Assert.AreEqual(expectedContent, actualContent);

            fileName    = "AppSettings.json";
            destination = this.GetOutputPath("AppSettings.Not-Transformed.json");

            newFileTransformCommand = new NewFileTransformCommand
            {
                Destination    = destination,
                Source         = this.GetTestResourcePath(fileName),
                Transformation = this.GetTestResourcePath("AppSettings.No-Transformation.json")
            };

            this.InvokeCommand(newFileTransformCommand);

            expectedContent = File.ReadAllText(this.GetTestResourcePath("AppSettings.No-Transformation.Expected.json"));
            actualContent   = File.ReadAllText(destination);

            Assert.AreEqual(expectedContent, actualContent);
        }