dotnet-installer/test/dotnet-publish.Tests/PublishAppWithDependencies.cs
Andrew Stanton-Nurse 852446e859 Improve resource file support (#2511)
* Add satellite assemblies to deps file with locale data
* Publish satellite assemblies to output during publish
* Copy satellite assemblies from project-to-project dependencies on
build and publish
2016-04-15 14:45:51 -07:00

86 lines
2.8 KiB
C#

// Copyright (c) .NET Foundation and contributors. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
using System.IO;
using Microsoft.DotNet.TestFramework;
using Microsoft.DotNet.Tools.Test.Utilities;
using Xunit;
namespace Microsoft.DotNet.Tools.Publish.Tests
{
public class PublishAppWithDependencies : TestBase
{
[Fact]
public void PublishTestAppWithContentPackage()
{
var testInstance = TestAssetsManager.CreateTestInstance("TestAppWithContentPackage")
.WithLockFiles();
var publishCommand = new PublishCommand(testInstance.TestRoot);
var publishResult = publishCommand.Execute();
publishResult.Should().Pass();
var publishDir = publishCommand.GetOutputDirectory(portable: false);
publishDir.Should().HaveFiles(new[]
{
$"AppWithContentPackage{publishCommand.GetExecutableExtension()}",
"AppWithContentPackage.dll",
"AppWithContentPackage.deps.json"
});
// these files come from the contentFiles of the SharedContentA dependency
publishDir
.Sub("scripts")
.Should()
.Exist()
.And
.HaveFile("run.cmd");
publishDir
.Should()
.HaveFile("config.xml");
}
[Fact]
public void PublishTestAppWithReferencesToResources()
{
var testInstance = TestAssetsManager.CreateTestInstance("ResourcesTests")
.WithLockFiles();
var projectRoot = Path.Combine(testInstance.TestRoot, "TestApp");
var publishCommand = new PublishCommand(projectRoot);
var publishResult = publishCommand.Execute();
publishResult.Should().Pass();
var publishDir = publishCommand.GetOutputDirectory(portable: true);
publishDir.Should().HaveFiles(new[]
{
"TestApp.dll",
"TestApp.deps.json"
});
foreach (var culture in new[] { "de", "es", "fr", "it", "ja", "ko", "ru", "zh-Hans", "zh-Hant" })
{
var cultureDir = publishDir.Sub(culture);
// Provided by packages
cultureDir.Should().HaveFiles(new[] {
"Microsoft.Data.Edm.resources.dll",
"Microsoft.Data.OData.resources.dll",
"System.Spatial.resources.dll"
});
// Check for the project-to-project one
if (culture == "fr")
{
cultureDir.Should().HaveFile("TestLibraryWithResources.resources.dll");
}
}
}
}
}