public BundleCommonJs(ICommonJsWriter writer, CassetteSettings cassetteSettings, ConcatenateAssets concatenateAssets, ISourceMapRewriter sourceMapRewriter) { _writer = writer; _cassetteSettings = cassetteSettings; _concatenateAssets = concatenateAssets; _sourceMapRewriter = sourceMapRewriter; }
public void ConcatenateAssetsMergesAssetReferences() { var module = new Module("~"); var asset1 = new Mock<IAsset>(); var asset2 = new Mock<IAsset>(); asset1.Setup(a => a.OpenStream()).Returns(() => "asset1".AsStream()); asset1.SetupGet(a => a.References).Returns(new[] { new AssetReference("~\\other1.js", asset1.Object, 0, AssetReferenceType.DifferentModule) }); asset2.Setup(a => a.OpenStream()).Returns(() => "asset2".AsStream()); asset2.SetupGet(a => a.References).Returns(new[] { new AssetReference("~\\other1.js", asset2.Object, 0, AssetReferenceType.DifferentModule), new AssetReference("~\\other2.js", asset2.Object, 0, AssetReferenceType.DifferentModule) }); module.Assets.Add(asset1.Object); module.Assets.Add(asset2.Object); var processor = new ConcatenateAssets(); processor.Process(module, Mock.Of<ICassetteApplication>()); module.Assets[0].References .Select(r => r.Path) .OrderBy(f => f) .SequenceEqual(new[] { "~\\other1.js", "~\\other1.js", "~\\other2.js" }) .ShouldBeTrue(); }
public void ConcatenateAssetsMergesAssetReferences() { var bundle = new TestableBundle("~"); var asset1 = new Mock<IAsset>(); var asset2 = new Mock<IAsset>(); asset1.Setup(a => a.OpenStream()).Returns(() => "asset1".AsStream()); asset1.SetupGet(a => a.References).Returns(new[] { new AssetReference(asset1.Object.Path, "~\\other1.js", 0, AssetReferenceType.DifferentBundle) }); asset2.Setup(a => a.OpenStream()).Returns(() => "asset2".AsStream()); asset2.SetupGet(a => a.References).Returns(new[] { new AssetReference(asset2.Object.Path, "~\\other1.js", 0, AssetReferenceType.DifferentBundle), new AssetReference(asset2.Object.Path, "~\\other2.js", 0, AssetReferenceType.DifferentBundle) }); bundle.Assets.Add(asset1.Object); bundle.Assets.Add(asset2.Object); var processor = new ConcatenateAssets(); processor.Process(bundle); bundle.Assets[0].References .Select(r => r.ToPath) .OrderBy(f => f) .SequenceEqual(new[] { "~\\other1.js", "~\\other1.js", "~\\other2.js" }) .ShouldBeTrue(); }
public void ConcatenateAssetsWithSeparatorPutsSeparatorBetweenEachAsset() { var bundle = new TestableBundle("~"); var asset1 = new Mock<IAsset>(); var asset2 = new Mock<IAsset>(); asset1.Setup(a => a.OpenStream()).Returns(() => "asset1".AsStream()); asset2.Setup(a => a.OpenStream()).Returns(() => "asset2".AsStream()); bundle.Assets.Add(asset1.Object); bundle.Assets.Add(asset2.Object); var processor = new ConcatenateAssets { Separator = ";" }; processor.Process(bundle); using (var reader = new StreamReader(bundle.Assets[0].OpenStream())) { reader.ReadToEnd().ShouldEqual("asset1;asset2"); } (bundle.Assets[0] as IDisposable).Dispose(); }
public void GivenModuleWithTwoAssets_WhenConcatenateAssetsProcessesModule_ThenASingleAssetReplacesTheTwoOriginalAssets() { var module = new Module("~"); var asset1 = new Mock<IAsset>(); var asset2 = new Mock<IAsset>(); asset1.Setup(a => a.OpenStream()).Returns(() => ("asset1" + Environment.NewLine + "content").AsStream()); asset2.Setup(a => a.OpenStream()).Returns(() => ("asset2" + Environment.NewLine + "content").AsStream()); module.Assets.Add(asset1.Object); module.Assets.Add(asset2.Object); var processor = new ConcatenateAssets(); processor.Process(module, Mock.Of<ICassetteApplication>()); module.Assets.Count.ShouldEqual(1); using (var reader = new StreamReader(module.Assets[0].OpenStream())) { reader.ReadToEnd().ShouldEqual("asset1" + Environment.NewLine + "content" + Environment.NewLine + "asset2" + Environment.NewLine + "content"); } (module.Assets[0] as IDisposable).Dispose(); }
public BundleCommonJs(ICommonJsWriter writer, CassetteSettings cassetteSettings, ConcatenateAssets concatenateAssets) { _writer = writer; _cassetteSettings = cassetteSettings; _concatenateAssets = concatenateAssets; }