// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Linq; using Xunit; namespace Microsoft.AspNetCore.Blazor.Build.Test { public class BootJsonWriterTest { [Fact] public void ProducesJsonReferencingAssemblyAndDependencies() { // Arrange/Act var assemblyReferences = new string[] { "System.Abc.dll", "MyApp.ClassLib.dll", }; var content = BootJsonWriter.GetBootJsonContent( "MyApp.Entrypoint.dll", "MyNamespace.MyType::MyMethod", assemblyReferences, Enumerable.Empty(), linkerEnabled: true); // Assert var parsedContent = JsonConvert.DeserializeObject(content); Assert.Equal("MyApp.Entrypoint.dll", parsedContent["main"].Value()); Assert.Equal("MyNamespace.MyType::MyMethod", parsedContent["entryPoint"].Value()); Assert.Equal(assemblyReferences, parsedContent["assemblyReferences"].Values()); } [Fact] public void IncludesReferencesToEmbeddedContent() { // Arrange/Act var embeddedContent = new[] { new EmbeddedResourceInfo(EmbeddedResourceKind.Static, "my/static/file"), new EmbeddedResourceInfo(EmbeddedResourceKind.Css, "css/first.css"), new EmbeddedResourceInfo(EmbeddedResourceKind.JavaScript, "javascript/first.js"), new EmbeddedResourceInfo(EmbeddedResourceKind.Css, "css/second.css"), new EmbeddedResourceInfo(EmbeddedResourceKind.JavaScript, "javascript/second.js"), }; var content = BootJsonWriter.GetBootJsonContent( "MyApp.Entrypoint", "MyNamespace.MyType::MyMethod", assemblyReferences: new[] { "Something.dll" }, embeddedContent: embeddedContent, linkerEnabled: true); // Assert var parsedContent = JsonConvert.DeserializeObject(content); Assert.Equal( new[] { "css/first.css", "css/second.css" }, parsedContent["cssReferences"].Values()); Assert.Equal( new[] { "javascript/first.js", "javascript/second.js" }, parsedContent["jsReferences"].Values()); } } }