Skip to content

Commit

Permalink
Extend TaskInvocationAnalysisDataTests
Browse files Browse the repository at this point in the history
  • Loading branch information
ladipro committed May 28, 2024
1 parent e94cb31 commit 9b8cf13
Showing 1 changed file with 33 additions and 0 deletions.
33 changes: 33 additions & 0 deletions src/BuildCheck.UnitTests/TaskInvocationAnalysisDataTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,13 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Build.Execution;
using Microsoft.Build.Experimental.BuildCheck;
using Microsoft.Build.Framework;
using Microsoft.Build.Shared;
using Microsoft.Build.UnitTests;
using Microsoft.Build.Utilities;
using Shouldly;
using Xunit;
using static Microsoft.Build.Experimental.BuildCheck.Infrastructure.BuildCheckManagerProvider;
Expand Down Expand Up @@ -144,5 +146,36 @@ public void ReportsComplexTaskParameters(string outputElement)
data.Parameters["CombinedPaths"].IsOutput.ShouldBe(true);
data.Parameters["CombinedPaths"].Value.ShouldNotBeNull();
}

[Fact]
public void TaskParameterEnumeratesValues()
{
var parameter1 = MakeParameter("string");
parameter1.EnumerateValues().SequenceEqual(["string"]).ShouldBeTrue();
parameter1.EnumerateStringValues().SequenceEqual(["string"]).ShouldBeTrue();

var parameter2 = MakeParameter(true);
parameter2.EnumerateValues().SequenceEqual([true]);
parameter2.EnumerateStringValues().SequenceEqual(["True"]).ShouldBeTrue();

var item1 = new TaskItem("item1");
var parameter3 = MakeParameter(item1);
parameter3.EnumerateValues().SequenceEqual([item1]).ShouldBeTrue();
parameter3.EnumerateStringValues().SequenceEqual(["item1"]).ShouldBeTrue();

var array1 = new object[] { "string1", "string2" };
var parameter4 = MakeParameter(array1);
parameter4.EnumerateValues().SequenceEqual(array1).ShouldBeTrue();
parameter4.EnumerateStringValues().SequenceEqual(array1).ShouldBeTrue();

var item2 = new TaskItem("item2");
var array2 = new ITaskItem[] { item1, item2 };
var parameter5 = MakeParameter(array2);
parameter5.EnumerateValues().SequenceEqual(array2).ShouldBeTrue();
parameter5.EnumerateStringValues().SequenceEqual(["item1", "item2"]).ShouldBeTrue();

static TaskInvocationAnalysisData.TaskParameter MakeParameter(object value)
=> new TaskInvocationAnalysisData.TaskParameter(value, IsOutput: false);
}
}
}

0 comments on commit 9b8cf13

Please sign in to comment.