Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
134 commits
Select commit Hold shift + click to select a range
491b329
feat(testing): add AwsLambda.Host.Testing project
j-d-ha Dec 4, 2025
b056510
feat(examples): add AwsLambda.Host.Examples.Testing project
j-d-ha Dec 4, 2025
9e16863
feat(testing): enhance AwsLambda.Host.Examples.Testing with unit test…
j-d-ha Dec 4, 2025
2916e80
feat(testing): add DeferredHostBuilder to AwsLambda.Host.Testing
j-d-ha Dec 4, 2025
726ae90
feat(testing): add LambdaApplicationFactory to AwsLambda.Host.Testing
j-d-ha Dec 4, 2025
af9ade7
docs(testing): update README with HTTP request/response examples
j-d-ha Dec 4, 2025
f9db8c9
docs(testing): add licensing attribution for LambdaApplicationFactory
j-d-ha Dec 4, 2025
38165d1
feat(examples): add HTTP request/response logging to testing example
j-d-ha Dec 4, 2025
00d69e3
fix(scripts): update version extraction logic in validate-version.sh
j-d-ha Dec 4, 2025
5595e2e
feat(testing): add HostFactoryResolver to AwsLambda.Host.Testing
j-d-ha Dec 5, 2025
52af97c
chore(licenses): update copyright and licensing attributions
j-d-ha Dec 5, 2025
725f1ae
chore(config): add .csharpierignore and update .editorconfig settings
j-d-ha Dec 5, 2025
15674ca
feat(testing): add LambdaApplicationFactoryClientOptions and LambdaTe…
j-d-ha Dec 5, 2025
3fc216d
feat(testing): migrate LambdaApplicationFactory to use IHostBuilder
j-d-ha Dec 5, 2025
7294801
feat(testing): add Microsoft.AspNetCore.Routing package
j-d-ha Dec 5, 2025
eadbf23
feat(testing): add ErrorResponse model to represent structured error …
j-d-ha Dec 5, 2025
dadaf34
feat(testing): add LambdaRuntimeRouteManager with route matching impl…
j-d-ha Dec 5, 2025
97269f1
feat(testing): add RequestType enum for Lambda runtime request classi…
j-d-ha Dec 5, 2025
2200769
feat(testing): add InvocationResponse model for Lambda testing
j-d-ha Dec 5, 2025
d714233
feat(testing): add LambdaBootstrapRequest model for request handling
j-d-ha Dec 5, 2025
d0a0a03
feat(testing): add LambdaClient for managing Lambda runtime requests
j-d-ha Dec 5, 2025
abdf25c
feat(testing): enhance LambdaTestingHttpHandler with request/response…
j-d-ha Dec 5, 2025
053b086
feat(testing): update route templates to support version-based paths
j-d-ha Dec 5, 2025
42f14b1
feat(testing): add customizable Lambda invocation headers and respons…
j-d-ha Dec 5, 2025
3ac1fb9
feat(testing): add configuration support to LambdaClient
j-d-ha Dec 5, 2025
827748b
refactor(testing): extract request creation logic into `CreateRequest…
j-d-ha Dec 5, 2025
3f8da1e
feat(testing): add options for customizing Lambda invocation headers …
j-d-ha Dec 5, 2025
c7b4754
refactor(testing): improve response header configuration and LambdaCl…
j-d-ha Dec 5, 2025
6ffae76
feat(testing): improve request ID generation and invocation handling …
j-d-ha Dec 5, 2025
9d7fc04
feat(testing): enhance Lambda request/response handling in LambdaClient
j-d-ha Dec 5, 2025
6cac8a3
fix(testing): handle null deserialization fallback in LambdaClient re…
j-d-ha Dec 5, 2025
d12498b
refactor(testing): remove unnecessary WaitForNextRequestAsync call
j-d-ha Dec 5, 2025
297edb1
fix(testing): allow null RequestId and update fallback logic
j-d-ha Dec 6, 2025
d23cd77
refactor(testing): simplify request ID generation and remove unused i…
j-d-ha Dec 6, 2025
5f14c2e
refactor(testing): replace DelegatingHandler with HttpMessageHandler …
j-d-ha Dec 6, 2025
5fa0a86
feat(testing): add LambdaTestServer implementation and update depende…
j-d-ha Dec 6, 2025
3a35bb8
refactor(testing): replace TestServer with LambdaTestServer in Lambda…
j-d-ha Dec 6, 2025
268c8a9
refactor(testing): remove redundant TestServer configuration in Lambd…
j-d-ha Dec 6, 2025
f10f596
feat(testing): add System.Net.Http and System.Text.RegularExpressions…
j-d-ha Dec 6, 2025
ae36d1c
refactor(testing): update class access modifiers and refactor LambdaT…
j-d-ha Dec 6, 2025
2d386ae
feat(testing): replace TestServer with LambdaTestServer and add boots…
j-d-ha Dec 6, 2025
e4dfcec
feat(testing): add LambdaApplicationFactoryContentRootAttribute imple…
j-d-ha Dec 6, 2025
4abe2e6
feat(testing): add Microsoft.Extensions.DependencyModel package to pr…
j-d-ha Dec 6, 2025
9e437f7
refactor(testing): clean up and optimize LambdaApplicationFactory con…
j-d-ha Dec 6, 2025
90035e8
refactor(testing): simplify exception handling in LambdaApplicationFa…
j-d-ha Dec 6, 2025
10f9ac9
refactor(testing): comment out unused methods and clean up HttpClient…
j-d-ha Dec 6, 2025
1371f0a
refactor(testing): remove LoggingHttpHandler and streamline HTTP clie…
j-d-ha Dec 6, 2025
46cfe36
refactor(testing): update method visibility and parameter order in La…
j-d-ha Dec 6, 2025
142cc7f
feat(testing): add LambdaClient creation and enhance Lambda bootstrap…
j-d-ha Dec 6, 2025
6987af2
refactor(testing): remove unimplemented Dispose method in LambdaTestS…
j-d-ha Dec 6, 2025
31bccdf
feat(testing): add integration test for LambdaHost
j-d-ha Dec 6, 2025
0d33131
refactor(testing): simplify path extraction logic in LambdaRuntimeRou…
j-d-ha Dec 6, 2025
1287b9d
refactor(testing): remove unimplemented server methods in LambdaTestS…
j-d-ha Dec 6, 2025
966cb34
refactor(testing): rename `GetClient` to `CreateClient` and remove un…
j-d-ha Dec 6, 2025
fdaf0e1
feat(testing): enhance LambdaTestServer with transaction-based archit…
j-d-ha Dec 7, 2025
59b71d7
refactor(testing): rename testing handler and client for clarity
j-d-ha Dec 7, 2025
c92d1e3
refactor(testing): clean up and simplify LambdaApplicationFactory (#221)
j-d-ha Dec 7, 2025
3384b03
feat(testing): update server implementation and enhance testing infra…
j-d-ha Dec 12, 2025
638e4b4
refactor(testing): rename namespaces and project for consistency
j-d-ha Dec 12, 2025
876ded4
feat(testing): update dependencies and project references for Minimal…
j-d-ha Dec 12, 2025
94bd399
feat(testing): add MinimalLambda project references and update usages
j-d-ha Dec 12, 2025
d1986f8
chore(deps): update Microsoft.Extensions.Hosting package versions
j-d-ha Dec 12, 2025
568a474
refactor(testing): update project references and namespaces for Minim…
j-d-ha Dec 12, 2025
8e04f74
refactor(testing): replace ClientOptions with ServerOptions across fa…
j-d-ha Dec 12, 2025
caadd88
refactor(testing): enhance resource cleanup and documentation in fact…
j-d-ha Dec 12, 2025
2d781fd
feat(testing): enhance XML documentation for Lambda test server and i…
j-d-ha Dec 12, 2025
80f1ea3
refactor(testing): reorder fields and add null-forgiveness in LambdaT…
j-d-ha Dec 12, 2025
9fdaab2
refactor(testing): improve shutdown and resource disposal in LambdaTe…
j-d-ha Dec 12, 2025
2a90667
refactor(testing): simplify README for MinimalLambda.Testing
j-d-ha Dec 12, 2025
d4e801c
docs(testing): expand README with usage details and examples
j-d-ha Dec 12, 2025
d08f053
docs(testing): clarify README description for LambdaApplicationFactor…
j-d-ha Dec 12, 2025
83bf8b4
docs(testing): remove outdated examples section from README
j-d-ha Dec 12, 2025
3473a75
docs(testing): update package description in project file
j-d-ha Dec 12, 2025
44a00c7
docs(testing): update example in README to use "Hello World"
j-d-ha Dec 12, 2025
ad50cc0
refactor(testing): improve accessibility, disposal, and route handling
j-d-ha Dec 12, 2025
7a2edc5
feat(testing): add unit tests and new support features for MinimalLambda
j-d-ha Dec 12, 2025
467bfdd
feat(testing): add unit tests for new lambda scenarios
j-d-ha Dec 12, 2025
e056990
feat(testing): add internal visibility for unit testing in lambda pro…
j-d-ha Dec 12, 2025
2ddb9f4
feat(DiLambda): implement dependency injection and lifecycle management
j-d-ha Dec 12, 2025
87965a0
feat(tests): update NoEventLambda handler to return detailed response
j-d-ha Dec 12, 2025
60ea39d
feat(tests): update NoResponseLambda to process Request type
j-d-ha Dec 12, 2025
72f3a79
feat(DiLambda): add logging and middleware support
j-d-ha Dec 12, 2025
c07b1b4
feat(testing): enhance disposal and cancellation handling in test inf…
j-d-ha Dec 12, 2025
9be7a1e
feat(tests): refactor `SimpleLambdaTests` for improved cancellation h…
j-d-ha Dec 12, 2025
9580e7e
feat(tests): validate input for `SimpleLambda` handler
j-d-ha Dec 12, 2025
b245a0d
feat(testing): extend `LambdaTestServer` methods with event response …
j-d-ha Dec 12, 2025
7efa06f
feat(tests): add concurrency and error propagation tests for `SimpleL…
j-d-ha Dec 12, 2025
a9bb7bf
feat(testing): improve `LambdaTestServer` lifecycle handling and init…
j-d-ha Dec 12, 2025
7b479e4
feat(tests): add cancellation test for `SimpleLambda` with pre-cancel…
j-d-ha Dec 12, 2025
e1a1ee0
refactor(examples): remove `AwsLambda.Host.Example.Testing` examples …
j-d-ha Dec 12, 2025
67b03ce
refactor(testing): reorganize properties and add missing members to `…
j-d-ha Dec 12, 2025
0b79147
feat(tests): add support for multiple frameworks and enhance testing …
j-d-ha Dec 12, 2025
200c5a3
feat(tests): add `NoEventLambdaTests` and expand framework compatibility
j-d-ha Dec 12, 2025
2a40e27
feat(tests): add `DiLambdaTests` and update framework compatibility
j-d-ha Dec 12, 2025
7aca35d
feat(tests): add advanced lifecycle tests for `DiLambda`
j-d-ha Dec 13, 2025
efe37b3
fix(runtime): handle `TaskCanceledException` more accurately during L…
j-d-ha Dec 13, 2025
47211d1
feat(testing): add cancellation token support to `LambdaTestingHttpHa…
j-d-ha Dec 13, 2025
25b3be2
fix(testing): improve exception handling and shutdown reliability
j-d-ha Dec 13, 2025
2c9386d
fix(tests): simplify exception assertion in `SimpleLambdaTests`
j-d-ha Dec 13, 2025
948800c
fix(tests): refactor `DiLambdaTests` and improve test configuration
j-d-ha Dec 13, 2025
1442e9e
feat(tests): enhance `NoEventLambda` configuration and add new test case
j-d-ha Dec 13, 2025
7c70f37
feat(tests): extend `DiLambdaTests` with Autofac container support
j-d-ha Dec 13, 2025
5b58c01
feat(tests): improve `NoResponseLambda` test coverage and enhance shu…
j-d-ha Dec 13, 2025
2b371b0
refactor(testing): remove unused `Fail` method from `LambdaHttpTransa…
j-d-ha Dec 13, 2025
fe14caa
refactor(testing): remove unused `CreateHostBuilder` method and simpl…
j-d-ha Dec 13, 2025
75f22b3
fix(testing): adjust `LambdaTestServer` initialization for improved r…
j-d-ha Dec 13, 2025
5d963ea
feat(tests): add unit tests for `DictionaryExtensions`
j-d-ha Dec 13, 2025
d3db8bf
fix(testing): improve exception handling for disposed services in hos…
j-d-ha Dec 13, 2025
5a680b0
feat(tests): add internal visibility for `MinimalLambda.Testing.UnitT…
j-d-ha Dec 13, 2025
4dde9ea
fix(ci): update SonarQube exclusions for specific file
j-d-ha Dec 13, 2025
405bd65
fix(ci): add `testing` as an allowed commit scope in PR title validation
j-d-ha Dec 13, 2025
c73159f
Merge branch 'main' into feature/#185-add-testing-package
j-d-ha Dec 13, 2025
216b570
feat(tests): add concurrency test for `SimpleLambda` without `Start`
j-d-ha Dec 13, 2025
421f0c2
fix(testing): improve exception messages in `LambdaTestServer`
j-d-ha Dec 13, 2025
f793185
Merge remote-tracking branch 'origin/feature/#185-add-testing-package…
j-d-ha Dec 13, 2025
0e52cd4
feat(testing): add `InitAlreadyCompleted` status to `LambdaTestServer`
j-d-ha Dec 13, 2025
6ef4355
feat(testing): add convenience methods to `LambdaTestServerExtensions`
j-d-ha Dec 13, 2025
c78076b
feat(testing): add generic `InvocationResponse<TResponse>` model
j-d-ha Dec 13, 2025
c290765
fix(testing): simplify host disposal logic in `LambdaApplicationFactory`
j-d-ha Dec 13, 2025
cdbd46e
refactor(testing): replace unused variable with discard in `LambdaApp…
j-d-ha Dec 13, 2025
9e864d0
fix(testing): standardize method name `WithCancellationToken` across …
j-d-ha Dec 13, 2025
7577d58
fix(testing): correct XML documentation for `LambdaApplicationFactory…
j-d-ha Dec 13, 2025
74b98df
refactor(testing): make `LambdaRuntimeRouteManager` static and remove…
j-d-ha Dec 13, 2025
05f583a
feat(testing): add `Causes` property and make `ErrorType` required in…
j-d-ha Dec 13, 2025
a51fe3c
refactor(testing): simplify dictionary initialization in `DictionaryE…
j-d-ha Dec 13, 2025
f160402
fix(testing): remove pending invocation after handling request
j-d-ha Dec 13, 2025
8750ca3
fix(testing): handle semaphore release on conditional acquisition in …
j-d-ha Dec 13, 2025
c870d66
fix(testing): improve server disposal and simplify host start logic
j-d-ha Dec 13, 2025
83e21a6
refactor(testing): update test implementation to use factory instance…
j-d-ha Dec 13, 2025
73a806d
refactor(testing): use inline factory instances in `NoResponseLambdaT…
j-d-ha Dec 13, 2025
f6c693f
refactor(testing): use inline factory instances in `DiLambdaTests` an…
j-d-ha Dec 13, 2025
b931baf
fix(testing): make `LambdaTestServer` host start asynchronous
j-d-ha Dec 13, 2025
17308db
fix(testing): replace `GetService` with `GetRequiredService` for `IHo…
j-d-ha Dec 13, 2025
3ed0672
fix(testing): improve cancellation handling and resolve dependencies …
j-d-ha Dec 13, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .csharpierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
src/AwsLambda.Host.Testing/HostFactoryResolver.cs
6 changes: 5 additions & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,8 @@ insert_final_newline = true
trim_trailing_whitespace = true

[*.xml]
indent_size = 4
indent_size = 4

[src/AwsLambda.Host.Testing/HostFactoryResolver.cs]
ij_formatter_enabled = false
resharper_disable_formatter = true
2 changes: 1 addition & 1 deletion .github/workflows/main-build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ jobs:
~/.sonar/scanner/dotnet-sonarscanner begin \
/k:"j-d-ha_minimal-lambda" \
/o:"j-d-ha" \
/d:sonar.exclusions="**/bin/**,**/obj/**,tests/MinimalLambda.SourceGenerators.UnitTests/Snapshots/**,**/coverage/**,**/.nuget/**,**/packages/**" \
/d:sonar.exclusions="**/bin/**,**/obj/**,tests/MinimalLambda.SourceGenerators.UnitTests/Snapshots/**,**/coverage/**,**/.nuget/**,**/packages/**,src/MinimalLambda.Testing/HostFactoryResolver.cs" \
/d:sonar.coverage.exclusions="**/*" \
/d:sonar.token="$SONAR_TOKEN"
dotnet build --no-restore --configuration Release /p:TreatWarningsAsErrors=true
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pr-build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ jobs:
~/.sonar/scanner/dotnet-sonarscanner begin \
/k:"j-d-ha_minimal-lambda" \
/o:"j-d-ha" \
/d:sonar.exclusions="**/bin/**,**/obj/**,tests/MinimalLambda.SourceGenerators.UnitTests/Snapshots/**,**/coverage/**,**/.nuget/**,**/packages/**" \
/d:sonar.exclusions="**/bin/**,**/obj/**,tests/MinimalLambda.SourceGenerators.UnitTests/Snapshots/**,**/coverage/**,**/.nuget/**,**/packages/**,src/MinimalLambda.Testing/HostFactoryResolver.cs" \
/d:sonar.coverage.exclusions="**/*" \
/d:sonar.token="$SONAR_TOKEN"

Expand Down
1 change: 1 addition & 0 deletions .github/workflows/validate-pr-title.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ jobs:
github
core
docs
testing
requireScope: false
subjectPattern: ^[a-z].*
subjectPatternError: Subject must start with lowercase letter
4 changes: 4 additions & 0 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,13 @@
<PackageVersion Include="Amazon.Lambda.KinesisFirehoseEvents" Version="2.3.0" />
<PackageVersion Include="Amazon.Lambda.RuntimeSupport" Version="1.14.1" />
<PackageVersion Include="Amazon.Lambda.Serialization.SystemTextJson" Version="2.4.4" />
<PackageVersion Include="Autofac.Extensions.DependencyInjection" Version="10.0.0" />
<PackageVersion Include="AutoFixture.AutoNSubstitute" Version="4.18.1" />
<PackageVersion Include="AutoFixture.Xunit3" Version="4.19.0" />
<PackageVersion Include="BenchmarkDotNet" Version="0.15.6" />
<PackageVersion Include="Microsoft.AspNetCore.Hosting.Abstractions" Version="2.3.0" />
<PackageVersion Include="Microsoft.AspNetCore.Routing" Version="2.3.0" />
<PackageVersion Include="Microsoft.Extensions.DependencyModel" Version="10.0.0" />
<PackageVersion Include="Microsoft.Extensions.Http" Version="10.0.0" />
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="8.0.0" />
<!-- Source Gen Libraries -->
Expand Down
98 changes: 98 additions & 0 deletions MinimalLambda.sln
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
Directory.Packages.props = Directory.Packages.props
THIRD-PARTY-LICENSES.txt = THIRD-PARTY-LICENSES.txt
mkdocs.yml = mkdocs.yml
.editorconfig = .editorconfig
.csharpierignore = .csharpierignore
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{827E0CD3-B72D-47B6-A68D-7590B98EB39B}"
Expand Down Expand Up @@ -71,6 +73,22 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MinimalLambda.Envelopes.Kaf
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MinimalLambda.Envelopes.CloudWatchLogs", "src\Envelopes\MinimalLambda.Envelopes.CloudWatchLogs\MinimalLambda.Envelopes.CloudWatchLogs.csproj", "{6D40345B-6CCF-4A6C-8FA2-5BE6C693E3F7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MinimalLambda.Testing", "src\MinimalLambda.Testing\MinimalLambda.Testing.csproj", "{9FA188D7-CF5F-4F87-B292-2AF69994FF12}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MinimalLambda.Testing.UnitTests", "tests\MinimalLambda.Testing.UnitTests\Tests\MinimalLambda.Testing.UnitTests\MinimalLambda.Testing.UnitTests.csproj", "{A8B1FC36-7518-4D9B-9CA1-BF7634229AFF}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MinimalLambda.Testing.UnitTests", "MinimalLambda.Testing.UnitTests", "{47DD369E-341A-4E8F-A227-B1B1E04CB9D6}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MinimalLambda.Testing.UnitTests.SimpleLambda", "tests\MinimalLambda.Testing.UnitTests\Lambdas\MinimalLambda.Testing.UnitTests.SimpleLambda\MinimalLambda.Testing.UnitTests.SimpleLambda.csproj", "{7E7B3004-C6C4-4A8C-8610-2A1CB61F834A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MinimalLambda.Testing.UnitTests.DiLambda", "tests\MinimalLambda.Testing.UnitTests\Lambdas\MinimalLambda.Testing.UnitTests.DiLambda\MinimalLambda.Testing.UnitTests.DiLambda.csproj", "{DA971B0E-E028-43E9-9FCE-6ADCD2535AC7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MinimalLambda.Testing.UnitTests.NoEventLambda", "tests\MinimalLambda.Testing.UnitTests\Lambdas\MinimalLambda.Testing.UnitTests.NoEventLambda\MinimalLambda.Testing.UnitTests.NoEventLambda.csproj", "{7350482B-DFDE-4DCD-A0C5-899D5EA00F74}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MinimalLambda.Testing.UnitTests.NoResponseLambda", "tests\MinimalLambda.Testing.UnitTests\Lambdas\MinimalLambda.Testing.UnitTests.NoResponseLambda\MinimalLambda.Testing.UnitTests.NoResponseLambda.csproj", "{381F49C0-297F-4B61-8A82-E9E502E523AD}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Lambdas", "Lambdas", "{D9109C8A-AFA8-49C8-A19C-381500902B4D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -345,6 +363,78 @@ Global
{6D40345B-6CCF-4A6C-8FA2-5BE6C693E3F7}.Release|x64.Build.0 = Release|Any CPU
{6D40345B-6CCF-4A6C-8FA2-5BE6C693E3F7}.Release|x86.ActiveCfg = Release|Any CPU
{6D40345B-6CCF-4A6C-8FA2-5BE6C693E3F7}.Release|x86.Build.0 = Release|Any CPU
{9FA188D7-CF5F-4F87-B292-2AF69994FF12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9FA188D7-CF5F-4F87-B292-2AF69994FF12}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9FA188D7-CF5F-4F87-B292-2AF69994FF12}.Debug|x64.ActiveCfg = Debug|Any CPU
{9FA188D7-CF5F-4F87-B292-2AF69994FF12}.Debug|x64.Build.0 = Debug|Any CPU
{9FA188D7-CF5F-4F87-B292-2AF69994FF12}.Debug|x86.ActiveCfg = Debug|Any CPU
{9FA188D7-CF5F-4F87-B292-2AF69994FF12}.Debug|x86.Build.0 = Debug|Any CPU
{9FA188D7-CF5F-4F87-B292-2AF69994FF12}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9FA188D7-CF5F-4F87-B292-2AF69994FF12}.Release|Any CPU.Build.0 = Release|Any CPU
{9FA188D7-CF5F-4F87-B292-2AF69994FF12}.Release|x64.ActiveCfg = Release|Any CPU
{9FA188D7-CF5F-4F87-B292-2AF69994FF12}.Release|x64.Build.0 = Release|Any CPU
{9FA188D7-CF5F-4F87-B292-2AF69994FF12}.Release|x86.ActiveCfg = Release|Any CPU
{9FA188D7-CF5F-4F87-B292-2AF69994FF12}.Release|x86.Build.0 = Release|Any CPU
{A8B1FC36-7518-4D9B-9CA1-BF7634229AFF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A8B1FC36-7518-4D9B-9CA1-BF7634229AFF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A8B1FC36-7518-4D9B-9CA1-BF7634229AFF}.Debug|x64.ActiveCfg = Debug|Any CPU
{A8B1FC36-7518-4D9B-9CA1-BF7634229AFF}.Debug|x64.Build.0 = Debug|Any CPU
{A8B1FC36-7518-4D9B-9CA1-BF7634229AFF}.Debug|x86.ActiveCfg = Debug|Any CPU
{A8B1FC36-7518-4D9B-9CA1-BF7634229AFF}.Debug|x86.Build.0 = Debug|Any CPU
{A8B1FC36-7518-4D9B-9CA1-BF7634229AFF}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A8B1FC36-7518-4D9B-9CA1-BF7634229AFF}.Release|Any CPU.Build.0 = Release|Any CPU
{A8B1FC36-7518-4D9B-9CA1-BF7634229AFF}.Release|x64.ActiveCfg = Release|Any CPU
{A8B1FC36-7518-4D9B-9CA1-BF7634229AFF}.Release|x64.Build.0 = Release|Any CPU
{A8B1FC36-7518-4D9B-9CA1-BF7634229AFF}.Release|x86.ActiveCfg = Release|Any CPU
{A8B1FC36-7518-4D9B-9CA1-BF7634229AFF}.Release|x86.Build.0 = Release|Any CPU
{7E7B3004-C6C4-4A8C-8610-2A1CB61F834A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7E7B3004-C6C4-4A8C-8610-2A1CB61F834A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7E7B3004-C6C4-4A8C-8610-2A1CB61F834A}.Debug|x64.ActiveCfg = Debug|Any CPU
{7E7B3004-C6C4-4A8C-8610-2A1CB61F834A}.Debug|x64.Build.0 = Debug|Any CPU
{7E7B3004-C6C4-4A8C-8610-2A1CB61F834A}.Debug|x86.ActiveCfg = Debug|Any CPU
{7E7B3004-C6C4-4A8C-8610-2A1CB61F834A}.Debug|x86.Build.0 = Debug|Any CPU
{7E7B3004-C6C4-4A8C-8610-2A1CB61F834A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7E7B3004-C6C4-4A8C-8610-2A1CB61F834A}.Release|Any CPU.Build.0 = Release|Any CPU
{7E7B3004-C6C4-4A8C-8610-2A1CB61F834A}.Release|x64.ActiveCfg = Release|Any CPU
{7E7B3004-C6C4-4A8C-8610-2A1CB61F834A}.Release|x64.Build.0 = Release|Any CPU
{7E7B3004-C6C4-4A8C-8610-2A1CB61F834A}.Release|x86.ActiveCfg = Release|Any CPU
{7E7B3004-C6C4-4A8C-8610-2A1CB61F834A}.Release|x86.Build.0 = Release|Any CPU
{DA971B0E-E028-43E9-9FCE-6ADCD2535AC7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DA971B0E-E028-43E9-9FCE-6ADCD2535AC7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DA971B0E-E028-43E9-9FCE-6ADCD2535AC7}.Debug|x64.ActiveCfg = Debug|Any CPU
{DA971B0E-E028-43E9-9FCE-6ADCD2535AC7}.Debug|x64.Build.0 = Debug|Any CPU
{DA971B0E-E028-43E9-9FCE-6ADCD2535AC7}.Debug|x86.ActiveCfg = Debug|Any CPU
{DA971B0E-E028-43E9-9FCE-6ADCD2535AC7}.Debug|x86.Build.0 = Debug|Any CPU
{DA971B0E-E028-43E9-9FCE-6ADCD2535AC7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DA971B0E-E028-43E9-9FCE-6ADCD2535AC7}.Release|Any CPU.Build.0 = Release|Any CPU
{DA971B0E-E028-43E9-9FCE-6ADCD2535AC7}.Release|x64.ActiveCfg = Release|Any CPU
{DA971B0E-E028-43E9-9FCE-6ADCD2535AC7}.Release|x64.Build.0 = Release|Any CPU
{DA971B0E-E028-43E9-9FCE-6ADCD2535AC7}.Release|x86.ActiveCfg = Release|Any CPU
{DA971B0E-E028-43E9-9FCE-6ADCD2535AC7}.Release|x86.Build.0 = Release|Any CPU
{7350482B-DFDE-4DCD-A0C5-899D5EA00F74}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7350482B-DFDE-4DCD-A0C5-899D5EA00F74}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7350482B-DFDE-4DCD-A0C5-899D5EA00F74}.Debug|x64.ActiveCfg = Debug|Any CPU
{7350482B-DFDE-4DCD-A0C5-899D5EA00F74}.Debug|x64.Build.0 = Debug|Any CPU
{7350482B-DFDE-4DCD-A0C5-899D5EA00F74}.Debug|x86.ActiveCfg = Debug|Any CPU
{7350482B-DFDE-4DCD-A0C5-899D5EA00F74}.Debug|x86.Build.0 = Debug|Any CPU
{7350482B-DFDE-4DCD-A0C5-899D5EA00F74}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7350482B-DFDE-4DCD-A0C5-899D5EA00F74}.Release|Any CPU.Build.0 = Release|Any CPU
{7350482B-DFDE-4DCD-A0C5-899D5EA00F74}.Release|x64.ActiveCfg = Release|Any CPU
{7350482B-DFDE-4DCD-A0C5-899D5EA00F74}.Release|x64.Build.0 = Release|Any CPU
{7350482B-DFDE-4DCD-A0C5-899D5EA00F74}.Release|x86.ActiveCfg = Release|Any CPU
{7350482B-DFDE-4DCD-A0C5-899D5EA00F74}.Release|x86.Build.0 = Release|Any CPU
{381F49C0-297F-4B61-8A82-E9E502E523AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{381F49C0-297F-4B61-8A82-E9E502E523AD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{381F49C0-297F-4B61-8A82-E9E502E523AD}.Debug|x64.ActiveCfg = Debug|Any CPU
{381F49C0-297F-4B61-8A82-E9E502E523AD}.Debug|x64.Build.0 = Debug|Any CPU
{381F49C0-297F-4B61-8A82-E9E502E523AD}.Debug|x86.ActiveCfg = Debug|Any CPU
{381F49C0-297F-4B61-8A82-E9E502E523AD}.Debug|x86.Build.0 = Debug|Any CPU
{381F49C0-297F-4B61-8A82-E9E502E523AD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{381F49C0-297F-4B61-8A82-E9E502E523AD}.Release|Any CPU.Build.0 = Release|Any CPU
{381F49C0-297F-4B61-8A82-E9E502E523AD}.Release|x64.ActiveCfg = Release|Any CPU
{381F49C0-297F-4B61-8A82-E9E502E523AD}.Release|x64.Build.0 = Release|Any CPU
{381F49C0-297F-4B61-8A82-E9E502E523AD}.Release|x86.ActiveCfg = Release|Any CPU
{381F49C0-297F-4B61-8A82-E9E502E523AD}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down Expand Up @@ -373,5 +463,13 @@ Global
{71EB7C3D-6EFE-4189-BE50-DC7C83D666F5} = {1C3C52D9-2936-4A0C-A9C8-F330F22B8359}
{DA647025-1B7B-425A-9405-8E015F6DA723} = {1C3C52D9-2936-4A0C-A9C8-F330F22B8359}
{6D40345B-6CCF-4A6C-8FA2-5BE6C693E3F7} = {1C3C52D9-2936-4A0C-A9C8-F330F22B8359}
{9FA188D7-CF5F-4F87-B292-2AF69994FF12} = {827E0CD3-B72D-47B6-A68D-7590B98EB39B}
{47DD369E-341A-4E8F-A227-B1B1E04CB9D6} = {0AB3BF05-4346-4AA6-1389-037BE0695223}
{A8B1FC36-7518-4D9B-9CA1-BF7634229AFF} = {47DD369E-341A-4E8F-A227-B1B1E04CB9D6}
{D9109C8A-AFA8-49C8-A19C-381500902B4D} = {47DD369E-341A-4E8F-A227-B1B1E04CB9D6}
{DA971B0E-E028-43E9-9FCE-6ADCD2535AC7} = {D9109C8A-AFA8-49C8-A19C-381500902B4D}
{7350482B-DFDE-4DCD-A0C5-899D5EA00F74} = {D9109C8A-AFA8-49C8-A19C-381500902B4D}
{381F49C0-297F-4B61-8A82-E9E502E523AD} = {D9109C8A-AFA8-49C8-A19C-381500902B4D}
{7E7B3004-C6C4-4A8C-8610-2A1CB61F834A} = {D9109C8A-AFA8-49C8-A19C-381500902B4D}
EndGlobalSection
EndGlobal
32 changes: 32 additions & 0 deletions THIRD-PARTY-LICENSES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -306,4 +306,36 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

================================================================================

5. runtime
--------------------------------------------------------------------------------
Source: https://github.com/dotnet/runtime
Version: v10.0.0
License: MIT License

The MIT License (MIT)

Copyright (c) .NET Foundation and Contributors

All rights reserved.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

================================================================================
4 changes: 3 additions & 1 deletion codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,6 @@ ignore:
- "tests/**"
- "examples/**"
- "benchmarks/**"
- "**/Program.cs"
- "**/Program.cs"
- "**/Program.cs"
- "src/MinimalLambda.Testing/HostFactoryResolver.cs"
4 changes: 2 additions & 2 deletions scripts/validate-version.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ cd "$DIR" || exit 1
PACKAGE_ID=$(grep -o '<PackageId>[^<]*</PackageId>' *.csproj | head -1 | sed 's/<PackageId>\(.*\)<\/PackageId>/\1/')

# Extract version from Directory.Build.props (BSD grep compatible)
VERSION=$(grep -o '<VersionPrefix>[^<]*</VersionPrefix>' ../../Directory.Build.props | head -1 | sed 's/<VersionPrefix>\(.*\)<\/VersionPrefix>/\1/')
VERSION=$(grep -o '<Version>[^<]*</Version>' ../../Directory.Build.props | head -1 | sed 's/<Version>\(.*\)<\/Version>/\1/')

if [[ -z "$PACKAGE_ID" ]] || [[ -z "$VERSION" ]]; then
echo "Error: Could not extract PackageId or VersionPrefix" >&2
echo "Error: Could not extract PackageId or Version" >&2
exit 1
fi

Expand Down
Comment thread
j-d-ha marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
using System.Text.Json;
using System.Text.Json.Serialization;
using Amazon.Lambda.Serialization.SystemTextJson;
using Amazon.Lambda.Serialization.SystemTextJson.Converters;

namespace MinimalLambda.Options;

/// <summary>Provides the default JSON serializer options used by AWS Lambda.</summary>
public static class DefaultLambdaJsonSerializerOptions
{
/// <summary>
/// Creates a <see cref="JsonSerializerOptions" /> instance that matches the defaults used by
/// <see cref="DefaultLambdaJsonSerializer" />.
/// </summary>
/// <remarks>
/// <para>Configures null-value ignoring, case-insensitive property names, and the AWS naming policy.</para>
/// <para>Adds the AWS-provided converters for dates, memory streams, constant classes, and byte arrays.</para>
/// </remarks>
/// <returns>Configured JSON serializer options suitable for AWS Lambda payloads.</returns>
public static JsonSerializerOptions Create()
{
var options = new JsonSerializerOptions
{
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull,
PropertyNameCaseInsensitive = true,
PropertyNamingPolicy = new AwsNamingPolicy(),
};
options.Converters.Add(new DateTimeConverter());
options.Converters.Add(new MemoryStreamConverter());
options.Converters.Add(new ConstantClassConverter());
options.Converters.Add(new ByteArrayConverter());

return options;
}
}
26 changes: 2 additions & 24 deletions src/MinimalLambda.Abstractions/Options/EnvelopeOptions.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
using System.Text.Json;
using System.Text.Json.Serialization;
using System.Xml;
using Amazon.Lambda.Serialization.SystemTextJson;
using Amazon.Lambda.Serialization.SystemTextJson.Converters;
using MinimalLambda.Envelopes;

namespace MinimalLambda.Options;
Expand Down Expand Up @@ -57,28 +55,8 @@ public class EnvelopeOptions
/// not been explicitly configured.
/// </para>
/// </remarks>
public JsonSerializerOptions LambdaDefaultJsonOptions
{
get
{
if (field is null)
{
field = new JsonSerializerOptions
{
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull,
PropertyNameCaseInsensitive = true,
PropertyNamingPolicy = new AwsNamingPolicy(),
};
field.Converters.Add(new DateTimeConverter());
field.Converters.Add(new MemoryStreamConverter());
field.Converters.Add(new ConstantClassConverter());
field.Converters.Add(new ByteArrayConverter());
}

return field;
}
set;
}
public JsonSerializerOptions LambdaDefaultJsonOptions { get; set; } =
DefaultLambdaJsonSerializerOptions.Create();

/// <summary>Gets or sets the XML reader settings used when deserializing Lambda event payloads.</summary>
/// <remarks>
Expand Down
Loading
Loading