private void TryLoadTaskBodyAndExpectFailure(string taskBody, string expectedErrorMessage) { if (expectedErrorMessage == null) { throw new ArgumentNullException(nameof(expectedErrorMessage)); } MockEngine buildEngine = new MockEngine(); TaskLoggingHelper log = new TaskLoggingHelper(buildEngine, TaskName) { TaskResources = Shared.AssemblyResources.PrimaryResources }; bool success = RoslynCodeTaskFactory.TryLoadTaskBody(log, TaskName, taskBody, new List <TaskPropertyInfo>(), out RoslynCodeTaskFactoryTaskInfo _); success.ShouldBeFalse(); buildEngine.Errors.ShouldBe(1); buildEngine.Log.ShouldContain(expectedErrorMessage, () => buildEngine.Log); }
private void TryLoadTaskBodyAndExpectSuccess( string taskBody, ICollection <TaskPropertyInfo> parameters = null, ISet <string> expectedReferences = null, ISet <string> expectedNamespaces = null, string expectedCodeLanguage = null, RoslynCodeTaskFactoryCodeType?expectedCodeType = null, string expectedSourceCode = null, IReadOnlyList <string> expectedWarningMessages = null) { MockEngine buildEngine = new MockEngine(); TaskLoggingHelper log = new TaskLoggingHelper(buildEngine, TaskName) { TaskResources = Shared.AssemblyResources.PrimaryResources }; bool success = RoslynCodeTaskFactory.TryLoadTaskBody(log, TaskName, taskBody, parameters ?? new List <TaskPropertyInfo>(), out RoslynCodeTaskFactoryTaskInfo taskInfo); buildEngine.Errors.ShouldBe(0, buildEngine.Log); if (expectedWarningMessages == null) { buildEngine.Warnings.ShouldBe(0); } else { string output = buildEngine.Log; foreach (string expectedWarningMessage in expectedWarningMessages) { output.ShouldContain(expectedWarningMessage, () => output); } } success.ShouldBeTrue(); if (expectedReferences != null) { taskInfo.References.ShouldBe(expectedReferences); } if (expectedNamespaces != null) { taskInfo.Namespaces.ShouldBe(expectedNamespaces); } if (expectedCodeLanguage != null) { taskInfo.CodeLanguage.ShouldBe(expectedCodeLanguage); } if (expectedCodeType != null) { taskInfo.CodeType.ShouldBe(expectedCodeType.Value); } if (expectedSourceCode != null) { NormalizeRuntime(taskInfo.SourceCode) .ShouldBe(NormalizeRuntime(expectedSourceCode), StringCompareShould.IgnoreLineEndings); } }