Skip to content

Commit a9d7ddf

Browse files
committed
Merge branch 'fix-handlecompipererror'
2 parents 2087742 + 952da0e commit a9d7ddf

File tree

3 files changed

+29
-1
lines changed

3 files changed

+29
-1
lines changed

Src/ScriptComponent/BizTalkComponents.PipelineComponents.ScriptComponent.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171
<Compile Include="Properties\AssemblyInfo.cs" />
7272
</ItemGroup>
7373
<ItemGroup>
74+
<None Include="BizTalkComponents.PipelineComponents.ScriptComponent.nuspec" />
7475
<None Include="BizTalkComponents.PipelineComponents.ScriptComponent.snk" />
7576
<None Include="packages.config" />
7677
</ItemGroup>

Src/ScriptComponent/ScriptComponent.cs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,9 +88,20 @@ private dynamic GetScriptInstance(string script)
8888
parameters.ReferencedAssemblies.Add("System.Xml.dll");
8989

9090
CompilerResults results = provider.CompileAssemblyFromSource(parameters, script);
91+
92+
StringBuilder errors = new StringBuilder();
93+
9194
if (results.Errors.Count != 0)
9295
{
93-
Console.WriteLine(results.Errors);
96+
foreach (var error in results.Errors)
97+
{
98+
errors.AppendLine(error.ToString());
99+
}
100+
}
101+
102+
if (errors.Length > 0)
103+
{
104+
throw new Exception(errors.ToString());
94105
}
95106

96107
dynamic instance = results.CompiledAssembly.CreateInstance("BizTalkComponents.GenericHelper");

Tests/UnitTests/ScriptComponentTest.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,5 +75,21 @@ public void TestSetPropertyFromXpath()
7575
Assert.AreEqual("testmsg", result[0].Context.Read("Name2", "Namespace"));
7676

7777
}
78+
79+
[TestMethod]
80+
[ExpectedException(typeof(Exception))]
81+
public void TestCompileError()
82+
{
83+
//Incomplete, will not compile.
84+
string snippet = "(ctx, msg) => {";
85+
86+
var pipeline = PipelineFactory.CreateEmptyReceivePipeline();
87+
88+
var scriptComponent = new ScriptComponent.ScriptComponent();
89+
scriptComponent.Snippet = snippet;
90+
var msg = MessageHelper.CreateFromString("<testmessage1>testmsg</testmessage1>");
91+
pipeline.AddComponent(scriptComponent, PipelineStage.ResolveParty);
92+
var result = pipeline.Execute(msg);
93+
}
7894
}
7995
}

0 commit comments

Comments
 (0)