static void AssertVariablesAreWrittenToFile(string f)
    {
        var writes = new List<string>();
        var semanticVersion = new SemanticVersion
            {
                Major = 1,
                Minor = 2,
                Patch = 3,
                PreReleaseTag = "beta1",
                BuildMetaData = "5"
            };

        semanticVersion.BuildMetaData.CommitDate = DateTimeOffset.Parse("2014-03-06 23:59:59Z");
        semanticVersion.BuildMetaData.Sha = "commitSha";

        var config = new TestEffectiveConfiguration();

        var variables = VariableProvider.GetVariablesFor(semanticVersion, config, false);

        var j = new Jenkins(f);

        j.WriteIntegration(writes.Add, variables);

        writes[1].ShouldBe("1.2.3-beta.1+5");

        File.Exists(f).ShouldBe(true);

        var props = File.ReadAllText(f);

        props.ShouldContain("GitVersion_Major=1");
        props.ShouldContain("GitVersion_Minor=2");
    }
 public void GenerateMessageTest()
 {
     var j = new Jenkins();
     var generatedParameterMessages = j.GenerateSetParameterMessage("name", "value");
     generatedParameterMessages.Length.ShouldBe(1);
     generatedParameterMessages[0].ShouldBe("GitVersion_name=value");
 }
    public void JenkinsTakesLocalBranchNameNotRemoteName()
    {
        // Save original values so they can be restored
        string branchOrig = Environment.GetEnvironmentVariable(branch);
        string localBranchOrig = Environment.GetEnvironmentVariable(localBranch);

        // Set GIT_BRANCH for testing
        Environment.SetEnvironmentVariable(branch, "origin/master");

        // Test Jenkins that GetCurrentBranch falls back to GIT_BRANCH if GIT_LOCAL_BRANCH undefined
        var j = new Jenkins();
        j.GetCurrentBranch(true).ShouldBe("origin/master");

        // Set GIT_LOCAL_BRANCH
        Environment.SetEnvironmentVariable(localBranch, "master");

        // Test Jenkins GetCurrentBranch method now returns GIT_LOCAL_BRANCH
        j.GetCurrentBranch(true).ShouldBe("master");

        // Restore environment variables
        Environment.SetEnvironmentVariable(branch, branchOrig);
        Environment.SetEnvironmentVariable(localBranch, localBranchOrig);
    }
 public void CanNotApplyCurrentContextWhenEnvironmentVariableIsNotSet()
 {
     ClearEnvironmentVariableForDetection();
     var j = new Jenkins();
     j.CanApplyToCurrentContext().ShouldBe(false);  
 }
 public void CanApplyCurrentContextWhenEnvironmentVariableIsSet()
 {
     SetEnvironmentVariableForDetection();
     var j = new Jenkins();
     j.CanApplyToCurrentContext().ShouldBe(true);
 }
 public void GenerateSetVersionMessageReturnsVersionAsIs_AlthoughThisIsNotUsedByJenkins()
 {
     var j = new Jenkins();
     var vars = new TestableVersionVariables(fullSemVer: "0.0.0-Beta4.7");
     j.GenerateSetVersionMessage(vars).ShouldBe("0.0.0-Beta4.7");
 }
 public void GenerateSetVersionMessageReturnsVersionAsIs_AlthoughThisIsNotUsedByJenkins()
 {
     var j = new Jenkins();
     j.GenerateSetVersionMessage("0.0.0-Beta4.7").ShouldBe("0.0.0-Beta4.7");
 }