public void TestMixedWaitingRequests() { BuildRequest request = CreateNewBuildRequest(1, new string[1] { "foo" }); BuildRequestConfiguration config = new BuildRequestConfiguration(1, new BuildRequestData("foo", new Dictionary<string, string>(), "foo", new string[0], null), "2.0"); BuildRequestEntry entry = new BuildRequestEntry(request, config); Assert.AreEqual(entry.State, BuildRequestEntryState.Ready); entry.Continue(); Assert.AreEqual(entry.State, BuildRequestEntryState.Active); BuildRequest waitingRequest1 = CreateNewBuildRequest(2, new string[1] { "bar" }); entry.WaitForResult(waitingRequest1); Assert.AreEqual(entry.State, BuildRequestEntryState.Waiting); BuildRequest waitingRequest2 = CreateNewBuildRequest(-1, new string[1] { "xor" }); entry.WaitForResult(waitingRequest2); Assert.AreEqual(entry.State, BuildRequestEntryState.Waiting); Assert.IsNull(entry.GetRequestsToIssueIfReady(), "Entry should not be ready to issue because there are unresolved configurations"); entry.ResolveConfigurationRequest(-1, 3); Assert.AreEqual(entry.State, BuildRequestEntryState.Waiting); BuildResult requiredResult1 = new BuildResult(waitingRequest1); requiredResult1.AddResultsForTarget("bar", TestUtilities.GetEmptySucceedingTargetResult()); entry.ReportResult(requiredResult1); Assert.AreEqual(entry.State, BuildRequestEntryState.Waiting); BuildResult requiredResult2 = new BuildResult(waitingRequest2); requiredResult2.AddResultsForTarget("xor", TestUtilities.GetEmptySucceedingTargetResult()); entry.ReportResult(requiredResult2); Assert.AreEqual(entry.State, BuildRequestEntryState.Ready); }
public void TestResolveConfiguration() { BuildRequest request = CreateNewBuildRequest(1, new string[1] { "foo" }); BuildRequestData data1 = new BuildRequestData("foo", new Dictionary<string, string>(), "foo", new string[0], null); BuildRequestConfiguration config = new BuildRequestConfiguration(1, data1, "2.0"); BuildRequestEntry entry = new BuildRequestEntry(request, config); entry.Continue(); Assert.AreEqual(entry.State, BuildRequestEntryState.Active); BuildRequest waitingRequest = CreateNewBuildRequest(-1, new string[1] { "bar" }); entry.WaitForResult(waitingRequest); entry.ResolveConfigurationRequest(-1, 2); BuildResult requiredResult = new BuildResult(waitingRequest); requiredResult.AddResultsForTarget("bar", TestUtilities.GetEmptySucceedingTargetResult()); entry.ReportResult(requiredResult); Assert.AreEqual(entry.State, BuildRequestEntryState.Ready); }