diff --git a/Tools/LambdaTestTool/src/Amazon.Lambda.TestTool/Runtime/LambdaExecutor.cs b/Tools/LambdaTestTool/src/Amazon.Lambda.TestTool/Runtime/LambdaExecutor.cs
index 19ee1dd83..c31b14892 100644
--- a/Tools/LambdaTestTool/src/Amazon.Lambda.TestTool/Runtime/LambdaExecutor.cs
+++ b/Tools/LambdaTestTool/src/Amazon.Lambda.TestTool/Runtime/LambdaExecutor.cs
@@ -194,9 +194,10 @@ public static object[] BuildParameters(ExecutionRequest request, ILambdaContext
{
parmValues[i] = context;
}
- else if(request.Payload != null)
+ else
{
- var stream = new MemoryStream(Encoding.UTF8.GetBytes(request.Payload));
+ var bytes = Encoding.UTF8.GetBytes((request.Payload != null) ? request.Payload : "{}");
+ var stream = new MemoryStream(bytes);
if (request.Function.Serializer != null)
{
var genericMethodInfo = request.Function.Serializer.GetType()
diff --git a/Tools/LambdaTestTool/tests/Amazon.Lambda.TestTool.Tests.Shared/InvokeFunctionTests.cs b/Tools/LambdaTestTool/tests/Amazon.Lambda.TestTool.Tests.Shared/InvokeFunctionTests.cs
index eb4782be1..4b167c4be 100644
--- a/Tools/LambdaTestTool/tests/Amazon.Lambda.TestTool.Tests.Shared/InvokeFunctionTests.cs
+++ b/Tools/LambdaTestTool/tests/Amazon.Lambda.TestTool.Tests.Shared/InvokeFunctionTests.cs
@@ -86,6 +86,18 @@ public async Task WithGenericParameterTest()
Assert.Equal("\"Value1,Value2\"", response.Response);
}
+ [Fact]
+ public async Task WithEventParameterTest()
+ {
+
+ var response = await ExecuteFunctionAsync(
+ "FunctionSignatureExamples::FunctionSignatureExamples.InstanceMethods::WithEventParameter",
+ null);
+
+ Assert.True(response.IsSuccess);
+ Assert.Equal("\"WithEventParameter-event-not-null\"", response.Response);
+ }
+
[Fact]
public async Task TaskWithNoResultTest()
{
diff --git a/Tools/LambdaTestTool/tests/LambdaFunctions/netcore21/FunctionSignatureExamples/FunctionSignatureExamples.csproj b/Tools/LambdaTestTool/tests/LambdaFunctions/netcore21/FunctionSignatureExamples/FunctionSignatureExamples.csproj
index f84ad50f0..05a705b79 100644
--- a/Tools/LambdaTestTool/tests/LambdaFunctions/netcore21/FunctionSignatureExamples/FunctionSignatureExamples.csproj
+++ b/Tools/LambdaTestTool/tests/LambdaFunctions/netcore21/FunctionSignatureExamples/FunctionSignatureExamples.csproj
@@ -6,6 +6,7 @@
+
diff --git a/Tools/LambdaTestTool/tests/LambdaFunctions/netcore21/FunctionSignatureExamples/InstanceMethods.cs b/Tools/LambdaTestTool/tests/LambdaFunctions/netcore21/FunctionSignatureExamples/InstanceMethods.cs
index 397185bbc..fe21726f3 100644
--- a/Tools/LambdaTestTool/tests/LambdaFunctions/netcore21/FunctionSignatureExamples/InstanceMethods.cs
+++ b/Tools/LambdaTestTool/tests/LambdaFunctions/netcore21/FunctionSignatureExamples/InstanceMethods.cs
@@ -4,6 +4,7 @@
using System.Threading.Tasks;
using Amazon.Lambda.Core;
+using Amazon.Lambda.S3Events;
// Assembly attribute to enable the Lambda function's JSON input to be converted into a .NET class.
[assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.Json.JsonSerializer))]
@@ -44,5 +45,11 @@ public string WithGenericParameter(List values, ILambdaContext context)
context.Logger.LogLine("Calling WithGenericParameter");
return string.Join(',', values.ToArray());
}
+
+ public string WithEventParameter(S3Event evnt, ILambdaContext context)
+ {
+ context.Logger.LogLine("Calling WithEventParameter");
+ return "WithEventParameter-" + ((evnt != null) ? "event-not-null" : "event-null");
+ }
}
}
diff --git a/Tools/LambdaTestTool/tests/LambdaFunctions/netcore31/FunctionSignatureExamples/FunctionSignatureExamples.csproj b/Tools/LambdaTestTool/tests/LambdaFunctions/netcore31/FunctionSignatureExamples/FunctionSignatureExamples.csproj
index ab5f4904d..eea78b7d1 100644
--- a/Tools/LambdaTestTool/tests/LambdaFunctions/netcore31/FunctionSignatureExamples/FunctionSignatureExamples.csproj
+++ b/Tools/LambdaTestTool/tests/LambdaFunctions/netcore31/FunctionSignatureExamples/FunctionSignatureExamples.csproj
@@ -6,6 +6,7 @@
+
diff --git a/Tools/LambdaTestTool/tests/LambdaFunctions/netcore31/FunctionSignatureExamples/InstanceMethods.cs b/Tools/LambdaTestTool/tests/LambdaFunctions/netcore31/FunctionSignatureExamples/InstanceMethods.cs
index 397185bbc..fe21726f3 100644
--- a/Tools/LambdaTestTool/tests/LambdaFunctions/netcore31/FunctionSignatureExamples/InstanceMethods.cs
+++ b/Tools/LambdaTestTool/tests/LambdaFunctions/netcore31/FunctionSignatureExamples/InstanceMethods.cs
@@ -4,6 +4,7 @@
using System.Threading.Tasks;
using Amazon.Lambda.Core;
+using Amazon.Lambda.S3Events;
// Assembly attribute to enable the Lambda function's JSON input to be converted into a .NET class.
[assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.Json.JsonSerializer))]
@@ -44,5 +45,11 @@ public string WithGenericParameter(List values, ILambdaContext context)
context.Logger.LogLine("Calling WithGenericParameter");
return string.Join(',', values.ToArray());
}
+
+ public string WithEventParameter(S3Event evnt, ILambdaContext context)
+ {
+ context.Logger.LogLine("Calling WithEventParameter");
+ return "WithEventParameter-" + ((evnt != null) ? "event-not-null" : "event-null");
+ }
}
}