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));
            }
Example #2
0
        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)));
        }
Example #3
0
        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");
            }