public void IgnoresImplicitlyDefinedVariables() { var generatedFile = Path.Combine(_tempDir, "deps.props"); var csproj = Path.Combine(_tempDir, "test.csproj"); File.WriteAllText(csproj, $@" <Project Sdk=`Microsoft.NET.Sdk`> <PropertyGroup> <TargetFramework>netstandard2.0</TargetFramework> </PropertyGroup> </Project>".Replace('`', '"')); var task = new GenerateDependenciesPropsFile { BuildEngine = new MockEngine(_output), DependenciesFile = generatedFile, Projects = new[] { new TaskItem(csproj) }, Properties = Array.Empty <string>(), }; Assert.True(task.Execute(), "Task is expected to pass"); var depsFile = ProjectRootElement.Open(generatedFile); _output.WriteLine(File.ReadAllText(generatedFile)); var pg = Assert.Single(depsFile.PropertyGroups, p => p.Label == DependencyVersionsFile.AutoPackageVersionsLabel); Assert.Empty(pg.Properties); }
public void DoesNotFailWhenConflictingVersionsAreSuppressed() { var generatedFile = Path.Combine(_tempDir, "deps.props"); var csproj1 = Path.Combine(_tempDir, "test1.csproj"); var csproj2 = Path.Combine(_tempDir, "test2.csproj"); CreateProject(csproj1, "1.2.3"); File.WriteAllText(csproj2, $@" <Project Sdk=`Microsoft.NET.Sdk`> <PropertyGroup> <TargetFramework>netstandard2.0</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include=`MyDependency` Version=`4.5.6` NoWarn=`KRB4002` /> </ItemGroup> </Project>".Replace('`', '"')); var task = new GenerateDependenciesPropsFile { BuildEngine = new MockEngine(_output), DependenciesFile = generatedFile, Projects = new[] { new TaskItem(csproj1), new TaskItem(csproj2) }, Properties = Array.Empty <string>(), }; Assert.True(task.Execute(), "Task is expected to oass"); }
public void FailsWhenConflictingVersions() { var generatedFile = Path.Combine(_tempDir, "deps.props"); var csproj1 = Path.Combine(_tempDir, "test1.csproj"); var csproj2 = Path.Combine(_tempDir, "test2.csproj"); CreateProject(csproj1, "1.2.3"); CreateProject(csproj2, "4.5.6"); var engine = new MockEngine(_output) { ContinueOnError = true }; var task = new GenerateDependenciesPropsFile { BuildEngine = engine, DependenciesFile = generatedFile, Projects = new[] { new TaskItem(csproj1), new TaskItem(csproj2) }, Properties = Array.Empty <string>(), }; Assert.False(task.Execute(), "Task is expected to fail"); Assert.Single(engine.Errors, e => e.Code == KoreBuildErrors.Prefix + KoreBuildErrors.ConflictingPackageReferenceVersions); }
public void GeneratesVariableName() { var generatedFile = Path.Combine(_tempDir, "deps.props"); var csproj = Path.Combine(_tempDir, "test.csproj"); CreateProject(csproj, "1.2.3"); var task = new GenerateDependenciesPropsFile { BuildEngine = new MockEngine(_output), DependenciesFile = generatedFile, Projects = new[] { new TaskItem(csproj) }, Properties = Array.Empty <string>(), }; Assert.True(task.Execute(), "Task is expected to pass"); var depsFile = ProjectRootElement.Open(generatedFile); _output.WriteLine(File.ReadAllText(generatedFile)); var pg = Assert.Single(depsFile.PropertyGroups, p => p.Label == DependencyVersionsFile.AutoPackageVersionsLabel); var prop = Assert.Single(pg.Properties, p => p.Name == "MyDependencyPackageVersion"); Assert.Equal("1.2.3", prop.Value); }