decec5f8da
* First step to ingest template engine Please do not merge yet @piotrp @seancpeters @livarocc * Localization * Attempt to get a build going Rename program.cs to New3Command.cs Move TableFormatter into its own file Consume template engine packages version 1.0.0-beta1-20161218-24 Temporarily add MyGet templating feed so that package restore will work * Update ExtendedCommandParser Make short form args prefer longer runs of characters in the source parameter before falling back to p:shortname syntax Change scoping for a few methods to get rid of inconsistent visiblity errors * Fix package installation wildcards * Cleanup New3Command, fix review issue, bump version, sorting for template list * Installation, loc fix, help formatting * Use latest TemplateEngine packages * New3 unit tests * Fixed formatting on csproj files * Add the build steps to add templates to the layout * Change tests slightly to make comparisons easier Also fixes the wrong flag getting passed to set language * Fixes for 127, 128, 130, 131 - help display * Sync to latest TemplateEngine version Absorbs new search logic * All tests passing Cleaner New3Command Support for project/item template contexts * Try to make tests more durable * Disable test parallelization for dotnet-new tests * Update web SDK and template engine versions * Remove AI package feed * Simplify CLI interface to Template Engine * Fix host identifier and update to latest packages * Update template engine & Web SDK versions * Fix template engine version * Remove UsingTask and redeclaration of property
69 lines
2.5 KiB
C#
69 lines
2.5 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;
|
|
using System.IO;
|
|
using Microsoft.DotNet.Tools.Test.Utilities;
|
|
using FluentAssertions;
|
|
using Xunit;
|
|
|
|
namespace Microsoft.DotNet.New.Tests
|
|
{
|
|
public class GivenThatIWantANewApp : TestBase
|
|
{
|
|
[Fact]
|
|
public void When_dotnet_new_is_invoked_mupliple_times_it_should_fail()
|
|
{
|
|
var rootPath = TestAssetsManager.CreateTestDirectory().Path;
|
|
|
|
new TestCommand("dotnet") { WorkingDirectory = rootPath }
|
|
.Execute("new");
|
|
|
|
DateTime expectedState = Directory.GetLastWriteTime(rootPath);
|
|
|
|
var result = new TestCommand("dotnet") { WorkingDirectory = rootPath }
|
|
.ExecuteWithCapturedOutput("new");
|
|
|
|
DateTime actualState = Directory.GetLastWriteTime(rootPath);
|
|
|
|
Assert.Equal(expectedState, actualState);
|
|
|
|
result.Should().Fail()
|
|
.And.HaveStdErr();
|
|
}
|
|
|
|
[Fact]
|
|
public void RestoreDoesNotUseAnyCliProducedPackagesOnItsTemplates()
|
|
{
|
|
var cSharpTemplates = new [] { "Console", "Lib", "Web", "Mstest", "XUnittest" };
|
|
|
|
var rootPath = TestAssetsManager.CreateTestDirectory().Path;
|
|
var packagesDirectory = Path.Combine(rootPath, "packages");
|
|
|
|
foreach (var cSharpTemplate in cSharpTemplates)
|
|
{
|
|
var projectFolder = Path.Combine(rootPath, cSharpTemplate);
|
|
Directory.CreateDirectory(projectFolder);
|
|
CreateAndRestoreNewProject(cSharpTemplate, projectFolder, packagesDirectory);
|
|
}
|
|
|
|
Directory.EnumerateFiles(packagesDirectory, $"*.nupkg", SearchOption.AllDirectories)
|
|
.Should().NotContain(p => p.Contains("Microsoft.DotNet.Cli.Utils"));
|
|
}
|
|
|
|
private void CreateAndRestoreNewProject(
|
|
string projectType,
|
|
string projectFolder,
|
|
string packagesDirectory)
|
|
{
|
|
new TestCommand("dotnet") { WorkingDirectory = projectFolder }
|
|
.Execute($"new --type {projectType}")
|
|
.Should().Pass();
|
|
|
|
new RestoreCommand()
|
|
.WithWorkingDirectory(projectFolder)
|
|
.Execute($"--packages {packagesDirectory} /p:SkipInvalidConfigurations=true")
|
|
.Should().Pass();
|
|
}
|
|
}
|
|
}
|