public void Calls_transforms_with_absolute_paths_when_supplied()
        {
            var processor = new TestableTransformProcessor();
            var contexts  = GetContexts();
            var summary   = GetSummary();

            processor.ClassUnderTest.ProcessTransforms(contexts, summary);

            processor.Transformer2.Verify(x => x.Transform(summary, @"D:\testtransform2.out"), Times.Once());
        }
        public void Runs_transforms_once_per_config_file()
        {
            var processor = new TestableTransformProcessor();
            var contexts  = GetContexts();
            var summary   = GetSummary();

            processor.ClassUnderTest.ProcessTransforms(contexts, summary);

            processor.Transformer1.Verify(x => x.Transform(summary, @"D:\testtransform1.out"), Times.Exactly(2));
            processor.Transformer2.Verify(x => x.Transform(summary, @"D:\testtransform2.out"), Times.Once());
        }
        public void Does_not_throw_if_no_transforms_specified()
        {
            var processor = new TestableTransformProcessor();
            var contexts  = GetContexts();
            var summary   = GetSummary();

            foreach (var context in contexts)
            {
                context.TestFileSettings.Transforms.Clear();
            }

            processor.ClassUnderTest.ProcessTransforms(contexts, summary);
        }
        public void Calls_only_specified_transforms()
        {
            var processor = new TestableTransformProcessor();
            var contexts  = GetContexts();
            var summary   = GetSummary();

            // Third context is the only one for Transformer2
            contexts[2].TestFileSettings.Transforms.Clear();

            processor.ClassUnderTest.ProcessTransforms(contexts, summary);

            processor.Transformer1.Verify(x => x.Transform(summary, @"D:\testtransform1.out"), Times.Once());
            processor.Transformer2.Verify(x => x.Transform(summary, @"D:\testtransform2.out"), Times.Never());
        }
        public void Calls_transforms_relative_to_settings_file_if_path_relative()
        {
            var processor = new TestableTransformProcessor();
            var contexts  = GetContexts();
            var summary   = GetSummary();

            contexts[2].TestFileSettings.Transforms.Last().Path = "testtransform2.out";
            processor
            .Mock <IFileSystemWrapper>()
            .Setup(x => x.IsPathRooted("testtransform2.out"))
            .Returns(false);

            processor.ClassUnderTest.ProcessTransforms(contexts, summary);

            processor.Transformer2.Verify(x => x.Transform(summary, @"D:\directory2\testtransform2.out"), Times.Once());
        }
        public void Ignores_casing_of_transform_names()
        {
            var processor = new TestableTransformProcessor();
            var contexts  = GetContexts();
            var summary   = GetSummary();

            foreach (var context in contexts)
            {
                foreach (var transform in context.TestFileSettings.Transforms)
                {
                    transform.Name = transform.Name.ToUpper();
                }
            }

            processor.ClassUnderTest.ProcessTransforms(contexts, summary);

            processor.Transformer1.Verify(x => x.Transform(summary, @"D:\testtransform1.out"), Times.Exactly(2));
            processor.Transformer2.Verify(x => x.Transform(summary, @"D:\testtransform2.out"), Times.Once());
        }