Пример #1
0
        public void ParseProject_NetCore_DefineConstants_ReturnsCorrectFallbackIfConditionsDontMatch()
        {
            var projString = @"<Project sdk=""Microsoft.NET.Sdk""><DefineConstants>Hoka;Loca;Moca;</DefineConstants><PropertyGroup Condition=""'$(Configuration)|$(Platform)'=='test|shoes'""><DefineConstants>Birth;Death;Taxes;</DefineConstants></PropertyGroup></Project>";
            var file       = new FakeFile(ProjectFileHelpers.GetNetCoreProjectWithString(projString));

            file.ParseProject("Roca", "shoes").NetCore.DefineConstants.Should().BeEquivalentTo("Hoka", "Loca", "Moca");
        }
Пример #2
0
        public void ParseProject_GetsCorrectOutputPath_UsesConditionOverride()
        {
            var file = new FakeFile(ProjectFileHelpers.GetNetCoreProjectWithString(@"<PropertyGroup Condition=""'$(Configuration)|$(Platform)'=='Test|x86'"">
                            <OutputPath>bin\wayhey\</OutputPath>
                          </PropertyGroup>"));

            file.ParseProject("test", "x86").OutputPath.ToString().Should().Be("bin/wayhey");
        }
Пример #3
0
        public void ParseProject_GetsCorrectOutputPath_FallbackConfigPlatformAndTargetFramework()
        {
            var file = new FakeFile(ProjectFileHelpers.GetNetCoreProjectWithString(@"<PropertyGroup>
                            <TargetFramework>NetStandard1.6</TargetFramework>
                          </PropertyGroup>"));

            file.ParseProject("test", "x86").OutputPath.ToString().Should().Be("bin/x86/test/NetStandard1.6");
        }
 public CustomProjectParserTests()
 {
     validCsProjFile                     = new FakeFile(Resources.CsProj_ValidFile);
     valid2017CsProjFile                 = new FakeFile(Resources.VS2017_CsProj_ValidFile);
     valid2017CsProjNetcoreFile          = new FakeFile(Resources.VS2017_CsProj_NetCoreDefault);
     valid2017CsProjNetstandardFile      = new FakeFile(Resources.VS2017_CsProj_NetStandard_ValidFile);
     validCsProjConditionalReferenceFile = new FakeFile(Resources.CsProj_ConditionReference_ValidFile);
     anotherValidFile                    = new FakeFile(Resources.AnotherCSProj);
 }
Пример #5
0
        public void ParseProject_NetCore_NuspecProperties_ReturnsIfSet()
        {
            var file  = new FakeFile(ProjectFileHelpers.GetNetCoreProjectWithElement("NuspecProperties", "edgar=poe;jimmini=cricket;"));
            var props = file.ParseProject("test").NetCore.NuspecProperties;

            props.Should().HaveCount(2);
            props["edgar"].Should().Be("poe");
            props["jimmini"].Should().Be("cricket");
        }
        public void CanGetOutputAssemblies_For_CSProjFile()
        {
            var file = new FakeFile("CsProj_ValidFile".SafeLoad());

            fs.AddFile(file);

            var result = cakeContext.GetOutputAssemblies(file.Path, "Debug", "AnyCPU");

            result.Should().ContainSingle().Which.FullPath.Should().Be("bin/Debug/Cake.Common.dll");
        }
        public void CanGetOutputAssemblies_For_VS2017CSProjFile()
        {
            var file = new FakeFile("VS2017_CsProj_NetCoreDefault".SafeLoad(), "./abc.csproj");

            fs.AddFile(file);

            var result = cakeContext.GetOutputAssemblies(file.Path, "Debug", "AnyCPU");

            result.Should().ContainSingle().Which.FullPath.Should().Be("bin/custom/netcoreapp1.1/abc.dll");
        }
        public void NullRefException_For_VS2017FSProjFile()
        {
            var file = new FakeFile("Cake_Unity_FSharp_Tests_fsproj".SafeLoad(), "c:/tmp/abc.fsproj");

            fs.AddFile(file);

            var project = cakeContext.ParseProject(file.Path, "Release", "AnyCPU");

            project.IsFsUnitTestProject().Should().BeTrue();
        }
 public CustomProjectParserTests()
 {
     validCsProjFile                     = new FakeFile("CsProj_ValidFile".SafeLoad());
     valid2017CsProjFile                 = new FakeFile("VS2017_CsProj_ValidFile".SafeLoad());
     valid2017CsProjNetcoreFile          = new FakeFile("VS2017_CsProj_NetCoreDefault".SafeLoad());
     valid2017CsProjNetstandardFile      = new FakeFile("VS2017_CsProj_NetStandard_ValidFile".SafeLoad());
     validCsProjConditionalReferenceFile = new FakeFile("CsProj_ConditionReference_ValidFile".SafeLoad());
     validCsProjWebApplicationFile       = new FakeFile("CsProj_ValidWebApplication".SafeLoad());
     validCsProjWithAbsoluteFilePaths    = new FakeFile("CsProj_AbsolutePath".SafeLoad());
 }
Пример #10
0
 public CustomProjectParserTests()
 {
     fs = new FakeFileSystem(FakeEnvironment.CreateUnixEnvironment());
     validCsProjFile                        = fs.CreateFakeFile("CsProj_ValidFile".SafeLoad());
     valid2017CsProjFile                    = fs.CreateFakeFile("VS2017_CsProj_ValidFile".SafeLoad());
     valid2017CsProjNetcoreFile             = fs.CreateFakeFile("VS2017_CsProj_NetCoreDefault".SafeLoad());
     valid2017CsProjNetstandardFile         = fs.CreateFakeFile("VS2017_CsProj_NetStandard_ValidFile".SafeLoad());
     validCsProjConditionalReferenceFile    = fs.CreateFakeFile("CsProj_ConditionReference_ValidFile".SafeLoad());
     validCsProjWebApplicationFile          = fs.CreateFakeFile("CsProj_ValidWebApplication".SafeLoad());
     validCsProjWithAbsoluteFilePaths       = fs.CreateFakeFile("CsProj_AbsolutePath".SafeLoad());
     validCsProjAppendTargetFrameworkFile   = fs.CreateFakeFile("CsProj_AppendTargetFramework".SafeLoad());
     validCsProjNoAppendTargetFrameworkFile = fs.CreateFakeFile("CsProj_NoAppendTargetFramework".SafeLoad());
 }
        public void CanGetProjectAssemblies_For_VS2017CSProjFile_DefaultPlatform()
        {
            var projectString = ProjectFileHelpers.GetNetCoreProjectWithString(
                "<PropertyGroup><OutputType>Exe</OutputType><TargetFrameworks>netstandard2.0;net45</TargetFrameworks></PropertyGroup>");
            var file = new FakeFile(projectString, "./klm.csproj");

            fs.AddFile(file);

            var result = cakeContext.GetProjectAssemblies(file.Path, "Release");

            result.Should().HaveCount(2).And.BeEquivalentTo(new FilePath("bin/Release/netstandard2.0/klm.exe"),
                                                            new FilePath("bin/Release/net45/klm.exe"));
        }
Пример #12
0
        public void ParseProject_NetCore_PackageReference_ReturnsWithIncludeAsChildElement()
        {
            var packageRef =
                @"<PackageReference>
                    <Include>Cake.Core</Include>
                    </PackageReference>";
            var file       = new FakeFile(ProjectFileHelpers.GetNetCoreProjectWithString(packageRef));
            var references = file.ParseProject("test").NetCore.PackageReferences;

            references.Should().HaveCount(1);

            var first = references.First();

            first.Name.Should().Be("Cake.Core");
        }
Пример #13
0
        public void ParseProject_NetCore_PackageReference_ReturnsWithVersionAsChildElement()
        {
            var packageRef =
                @"<PackageReference Include=""Cake.Core"">
                    <Version>1.3.1</Version>
                    </PackageReference>";
            var file       = new FakeFile(ProjectFileHelpers.GetNetCoreProjectWithString(packageRef));
            var references = file.ParseProject("test").NetCore.PackageReferences;

            references.Should().HaveCount(1);

            var first = references.First();

            first.Version.Should().Be("1.3.1");
        }
Пример #14
0
        public void ParseProject_NetCore_PackageReference_ReturnsWithTargetFrameworkInAttributeIfSet()
        {
            var packageRef =
                @"<ItemGroup>
                    <PackageReference Include=""System.Collections.Immutable"" Version=""1.3.1"" Condition=""'$(TargetFramework)'== 'net451'"" />
                </ItemGroup>";
            var file       = new FakeFile(ProjectFileHelpers.GetNetCoreProjectWithString(packageRef));
            var references = file.ParseProject("test").NetCore.PackageReferences;

            references.Should().HaveCount(1);

            var first = references.First();

            first.ExcludeAssets.Should().BeNull();
            first.IncludeAssets.Should().BeNull();
            first.PrivateAssets.Should().BeNull();
            first.Name.Should().Be("System.Collections.Immutable");
            first.TargetFramework.Should().Be("net451");
            first.Version.Should().Be("1.3.1");
        }
Пример #15
0
        public void ParseProject_NetCore_Targets_ReturnsIfSet()
        {
            var targetString = @"<Target Name=""Jogging"" BeforeTargets=""Stretch;Jump;;"" AfterTargets=""IceBath"" DependsOn=""Mood"">
                                  <Exec Command=""hop.cmd"" />
                                  <Exec Command=""skip.cmd"" />
                                </Target>";
            var file         = new FakeFile(ProjectFileHelpers.GetNetCoreProjectWithString(targetString));
            var targets      = file.ParseProject("test").NetCore.Targets;

            var first = targets.Should().ContainSingle().Subject;

            first.BeforeTargets.Should().BeEquivalentTo("Stretch", "Jump");
            first.AfterTargets.Should().BeEquivalentTo("IceBath");
            first.DependsOn.Should().BeEquivalentTo("Mood");
            first.Name.Should().Be("Jogging");

            first.Executables.Should().HaveCount(2);

            first.Executables.First().Command.Should().Be("hop.cmd");
            first.Executables.Last().Command.Should().Be("skip.cmd");
        }
Пример #16
0
        public void ParseProject_NetCore_DotNetCliToolReferences_ReturnsIfSet()
        {
            var cliRefs    = @"<ItemGroup>
                          <DotNetCliToolReference Include=""Blerk1"" Version=""1.0.0"" />
                          <DotNetCliToolReference Include=""Blerk2"" Version=""2.3.4"" />
                            </ItemGroup>";
            var file       = new FakeFile(ProjectFileHelpers.GetNetCoreProjectWithString(cliRefs));
            var references = file.ParseProject("test").NetCore.DotNetCliToolReferences;

            references.Should().HaveCount(2);

            var first = references.First();

            first.Name.Should().Be("Blerk1");
            first.Version.Should().Be("1.0.0");

            var last = references.Last();

            last.Name.Should().Be("Blerk2");
            last.Version.Should().Be("2.3.4");
        }
Пример #17
0
        public void ParseProject_NetCore_ProjectReferences_ReturnIfSet()
        {
            var file       = new FakeFile(ProjectFileHelpers.GetNetCoreProjectWithString("<ProjectReference Include=\"..\\a\\b.csproj\" /><ProjectReference Include=\"..\\c\\d.csproj\" />"), "c:/project/src/x.csproj");
            var references = file.ParseProject("test").NetCore.ProjectReferences;

            references.Should().HaveCount(2);

            var first = references.First();

            first.Name.Should().Be("b");
            first.RelativePath.Should().Be("../a/b.csproj");
            first.FilePath.ToString().Should().Be("c:/project/a/b.csproj");
            first.Package.Should().BeNull();
            first.Project.Should().BeNull();

            var second = references.Last();

            second.Name.Should().Be("d");
            second.RelativePath.Should().Be("../c/d.csproj");
            second.FilePath.ToString().Should().Be("c:/project/c/d.csproj");
            second.Package.Should().BeNull();
            second.Project.Should().BeNull();
        }
Пример #18
0
        public void ParseProject_NetCore_TargetFrameworks_ReturnsIfSet()
        {
            var file = new FakeFile(ProjectFileHelpers.GetNetCoreProjectWithElement("TargetFrameworks", "net45;net46;###**%%.1;;"));

            file.ParseProject("test").NetCore.TargetFrameworks.Should().BeEquivalentTo("net45", "net46", "###**%%.1");
        }
Пример #19
0
        public void ParseProject_NetCore_TargetFrameworks_TargetFrameworkFallback()
        {
            var file = new FakeFile(ProjectFileHelpers.GetNetCoreProjectWithElement("TargetFramework", "net45"));

            file.ParseProject("test").NetCore.TargetFrameworks.Should().BeEquivalentTo("net45");
        }
Пример #20
0
        public void ParseProject_NetCore_TreatWarningsAsErrors_ReturnsIfSet()
        {
            var file = new FakeFile(ProjectFileHelpers.GetNetCoreProjectWithElement("TreatWarningsAsErrors", "true"));

            file.ParseProject("test").NetCore.TreatWarningsAsErrors.Should().BeTrue();
        }
Пример #21
0
        public void ParseProject_GetsCorrectOutputType_WhenNoneSpecified()
        {
            var file = new FakeFile(ProjectFileHelpers.GetNetCoreProjectWithElement("AssemblyName", "a"));

            file.ParseProject("test").OutputType.Should().Be("Library");
        }
Пример #22
0
        public void ParseProject_IsFrameworkTestProject(FakeFile testProject)
        {
            var result = testProject.ParseProjectFile("test");

            result.IsFrameworkTestProject().Should().BeTrue();
        }
Пример #23
0
        public void ParseProject_NetCore_Version_ReturnsIfSemver()
        {
            var file = new FakeFile(ProjectFileHelpers.GetNetCoreProjectWithString("<VersionPrefix>1.2.3</VersionPrefix><VersionSuffix>alpha5813</VersionSuffix><Version>8.9.10</Version>"));

            file.ParseProject("test").NetCore.Version.Should().Be("1.2.3-alpha5813");
        }
Пример #24
0
        public void ParseProject_NetCore_ServerGarbageCollection_ReturnsIfSet()
        {
            var file = new FakeFile(ProjectFileHelpers.GetNetCoreProjectWithElement("ServerGarbageCollection", "true"));

            file.ParseProject("test").NetCore.RuntimeOptions.ServerGarbageCollection.Should().BeTrue();
        }
Пример #25
0
        public void ParseProject_NetCore_Version_DefaultFallback()
        {
            var file = new FakeFile(ProjectFileHelpers.GetNetCoreProjectWithString(null));

            file.ParseProject("test").NetCore.Version.Should().Be("1.0.0");
        }
Пример #26
0
        public void ParseProject_NetCore_FileVersion_ReturnsIfSet()
        {
            var file = new FakeFile(ProjectFileHelpers.GetNetCoreProjectWithElement("FileVersion", "1.4.3.5"));

            file.ParseProject("test").NetCore.FileVersion.Should().Be("1.4.3.5");
        }
Пример #27
0
        public void ParseProject_NetCore_SignAssembly_ReturnsIfSet()
        {
            var file = new FakeFile(ProjectFileHelpers.GetNetCoreProjectWithElement("SignAssembly", "TRUE"));

            file.ParseProject("test").NetCore.SignAssembly.Should().BeTrue();
        }
Пример #28
0
        public void ParseProject_GetsCorrectOutputType_WhenExeSpecified()
        {
            var file = new FakeFile(ProjectFileHelpers.GetNetCoreProjectWithElement("OutputType", "Exe"));

            file.ParseProject("test").OutputType.Should().Be("Exe");
        }
Пример #29
0
        public void ParseProject_NetCore_ThreadPoolMinThreads_ReturnsIfSet()
        {
            var file = new FakeFile(ProjectFileHelpers.GetNetCoreProjectWithElement("ThreadPoolMinThreads", "3"));

            file.ParseProject("test").NetCore.RuntimeOptions.ThreadPoolMinThreads.Should().Be(3);
        }
Пример #30
0
        public void ParseProject_NetCore_Version_VersionFallback()
        {
            var file = new FakeFile(ProjectFileHelpers.GetNetCoreProjectWithElement("Version", "1.2.3.5"));

            file.ParseProject("test").NetCore.Version.Should().Be("1.2.3.5");
        }