public void Should_Execute_Runner_And_Add_Modifier()
        {
            var asset = new AssetBaseImpl();
            asset.StreamContent = "url(../image/file.css);";
            asset.Source = "/Source/file.css";

            var bundle = new StyleSheetBundle();
            bundle.Assets.Add(asset);

            var context = processor.CreateRunnerContext("../image/file.css", asset);

            var result = new Mock<ImagePipelineRunnerResult>();
            result.Object.Changed = true;
            result.Object.OldPath = "../image/file.css";
            result.Object.NewPath = "/image/file.css";

            Func<ImagePipelineRunnerContext, bool> isContextEqual = (c) =>
                {
                    var isEqual = c.ImagePath == context.ImagePath &&
                        c.SourcePath == context.SourcePath &&
                        c.AppRootDirectory == directory.Object;

                    return isEqual;
                };

            runner.Setup(r => r.Execute(It.Is<ImagePipelineRunnerContext>(c => isContextEqual(c))))
                .Returns(result.Object);

            processor.Process(bundle);
            var content = asset.OpenStream().ReadToEnd(); //execute modifier so we can test for results

            runner.Verify(r => r.Execute(It.Is<ImagePipelineRunnerContext>(c => isContextEqual(c))));
            Assert.AreEqual("url(/image/file.css);", content);
        }
        public void Setup()
        {
            settings = new SettingsContext();

            asset = new AssetBaseImpl();
            bundle = new StyleSheetBundle();
            bundle.Assets.Add(asset);
            processor = new ExpandPathProcessor(settings);
        }
 public void SetUp()
 {
     textWriter = new StringWriter();
     tagWriter = new StyleSheetTagWriter();
     bundle = new StyleSheetBundle();
 }