…abel, branch, audit log, and management token
- Add 7 new integration test files (Contentstack005–009, 023, 024) covering
locale, webhook, extension, label, branch, audit log, and management token APIs
- Add TestAssemblySetup with AssemblyInitialize for dynamic stack creation
- Add TestRunContext for in-memory stack API key sharing across tests
- Update Contentstack.cs with 8 new optional config keys (MemberEmail, TfaEmail,
TfaPassword, OAuth, PersonalizeHost, DeleteDynamicResources, DamV2Enabled, AmOrgUid)
- Add LoggingHttpHandler to capture HTTP request/response with timestamps and cURL
- Add TestOutputLogger for structured JSON output (ASSERTION, HTTP_REQUEST, HTTP_RESPONSE)
- Update generate_integration_test_report.py with per-transaction timestamp and duration display
- Update .gitignore to exclude appSettings.json, appsettings.template.json, SDK_METHOD_COVERAGE_MAP.md
Summary
TestAssemblySetupwith[AssemblyInitialize]for dynamic stack creation before the test run, replacing the static pre-existing stack dependencyTestRunContextfor in-memory sharing of the stack API key across test classesContentstack.cswith 8 optional config properties (TfaEmail, TfaPassword, OAuth, PersonalizeHost, MemberEmail, DeleteDynamicResources, DamV2Enabled, AmOrgUid) read fromappSettings.jsonHTTP Logging Infrastructure
LoggingHttpHandler— aDelegatingHandlerthat intercepts every HTTP request/response and emits structured JSON to stdout, including method, URL, headers, body, cURL command, and timestampTestOutputLoggerfor structured log emission using###TEST_OUTPUT_START###/###TEST_OUTPUT_END###markers parsed by the HTML report generatorgenerate_integration_test_report.pyto display per-transaction timestamps and duration (ms) in the HTML reportTest plan
dotnet buildpasses with no errorsdotnet test --filter "FullyQualifiedName~Integration"runs the new test classesTestAssemblySetupcreates a stack at run start and setsTestRunContext.StackApiKeyScripts/generate_integration_test_report.pyshows per-case assertions, cURL commands, and HTTP timestampsappSettings.jsonis gitignored and not included in this PR