public async Task ThrowsForBadLess() { // Given const string input = @" @foo: black div { color: @foo; }"; TestFileProvider fileProvider = new TestFileProvider(); fileProvider.AddDirectory("/"); fileProvider.AddDirectory("/input"); fileProvider.AddDirectory("/input/assets"); fileProvider.AddFile("/input/assets/test.less", input); TestFileSystem fileSystem = new TestFileSystem { FileProvider = fileProvider }; TestExecutionContext context = new TestExecutionContext { FileSystem = fileSystem }; TestDocument document = new TestDocument( new FilePath("/input/assets/test.less"), new FilePath("assets/test.less"), input); CompileLess less = new CompileLess(); // When, Then await Should.ThrowAsync <Exception>(async() => await ExecuteAsync(document, context, less)); }
public void GivenACompiler_WhenProcessCalled_ThenCompileAssetTransformerAddedToLessAsset() { var processor = new CompileLess(Mock.Of<ILessCompiler>(), new CassetteSettings()); var bundle = new StylesheetBundle("~"); var asset = new Mock<IAsset>(); asset.SetupGet(a => a.Path).Returns("test.less"); bundle.Assets.Add(asset.Object); processor.Process(bundle); asset.Verify(a => a.AddAssetTransformer(It.Is<IAssetTransformer>(at => at is CompileAsset))); }
public void GivenACompiler_WhenProcessCalled_ThenCompileAssetTransformerNotAddedToCssAsset() { var processor = new CompileLess(Mock.Of<ICompiler>()); var module = new StylesheetModule("~"); var asset = new Mock<IAsset>(); asset.SetupGet(a => a.SourceFilename).Returns("test.css"); module.Assets.Add(asset.Object); processor.Process(module, Mock.Of<ICassetteApplication>()); asset.Verify(a => a.AddAssetTransformer(It.Is<IAssetTransformer>(at => at is CompileAsset)), Times.Never()); }
public async Task Convert() { // Given const string input = @" @foo: black; div { color: @foo; }"; const string output = @"div { color: black; } "; TestFileProvider fileProvider = new TestFileProvider(); fileProvider.AddDirectory("/"); fileProvider.AddDirectory("/input"); fileProvider.AddDirectory("/input/assets"); fileProvider.AddFile("/input/assets/test.less", input); TestFileSystem fileSystem = new TestFileSystem { FileProvider = fileProvider }; TestExecutionContext context = new TestExecutionContext { FileSystem = fileSystem }; TestDocument document = new TestDocument( new FilePath("/input/assets/test.less"), new FilePath("assets/test.less"), input); CompileLess less = new CompileLess(); // When TestDocument result = await ExecuteAsync(document, context, less).SingleAsync(); // Then result.Content.ShouldBe(output, StringCompareShould.IgnoreLineEndings); result.Destination.FullPath.ShouldBe("assets/test.css"); }