Merge pull request #25 from dmilov/topic/dmilov/fix-integration-tests-run
This commit is contained in:
commit
427100c4c2
|
@ -9,7 +9,7 @@
|
|||
RootModule = 'CloudEvents.Sdk.psm1'
|
||||
|
||||
# Version number of this module.
|
||||
ModuleVersion = '0.2.0'
|
||||
ModuleVersion = '0.2.1'
|
||||
|
||||
# Supported PSEditions
|
||||
CompatiblePSEditions = @('Core')
|
||||
|
|
|
@ -556,7 +556,7 @@ PROCESS {
|
|||
$headers.Add(($HttpHeaderPrefix + $attribute.Key), $attribute.Value.ToString())
|
||||
}
|
||||
elseif ($attribute.Value -is [DateTime]) {
|
||||
$headers.Add(($HttpHeaderPrefix + $attribute.Key), $attribute.Value.ToString("u"))
|
||||
$headers.Add(($HttpHeaderPrefix + $attribute.Key), $attribute.Value.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss.fffZ'))
|
||||
}
|
||||
elseif ($attribute.Value -is [Uri] -or $attribute.Value -is [int]) {
|
||||
$headers.Add(($HttpHeaderPrefix + $attribute.Key), $attribute.Value.ToString())
|
||||
|
|
|
@ -28,6 +28,35 @@ Describe "Client-Server Integration Tests" {
|
|||
-ArgumentList $serverProcessArguments `
|
||||
-PassThru `
|
||||
-NoNewWindow
|
||||
|
||||
# Wait Server to Start
|
||||
$serverPingRequest = `
|
||||
New-CloudEvent `
|
||||
-Id ([Guid]::NewGuid()) `
|
||||
-Type $script:ServerPingType `
|
||||
-Source $script:ClientSource | `
|
||||
ConvertTo-HttpMessage `
|
||||
-ContentMode Structured
|
||||
|
||||
$serverReady = $false
|
||||
$maxRetries = 10
|
||||
do {
|
||||
try {
|
||||
Invoke-WebRequest `
|
||||
-Uri $testServerUrl `
|
||||
-Headers $serverPingRequest.Headers `
|
||||
-Body $serverPingRequest.Body | Out-Null
|
||||
$serverReady = $true
|
||||
} catch {
|
||||
Write-Verbose "Wait CloudEvents HTTP Test Server to start"
|
||||
Start-Sleep -Seconds 1
|
||||
$maxRetries--
|
||||
}
|
||||
} while (-not $serverReady -and $maxRetries -gt 0)
|
||||
|
||||
if ($maxRetries -eq 0) {
|
||||
throw "CloudEvents HTTP Test Server failed to start."
|
||||
}
|
||||
}
|
||||
|
||||
AfterAll {
|
||||
|
|
|
@ -77,22 +77,26 @@ param(
|
|||
if ( $cloudEvent -ne $null ) {
|
||||
$Handler.Invoke($cloudEvent, $context.Response)
|
||||
$context.Response.Close();
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
$context.Response.StatusCode = [int]([System.Net.HttpStatusCode]::BadRequest)
|
||||
$context.Response.Close();
|
||||
}
|
||||
|
||||
} catch {
|
||||
}
|
||||
catch {
|
||||
Write-Error $_
|
||||
$context.Response.StatusCode = [int]([System.Net.HttpStatusCode]::InternalServerError)
|
||||
$context.Response.Close();
|
||||
} finally {
|
||||
}
|
||||
finally {
|
||||
$listener.Stop()
|
||||
}
|
||||
}
|
||||
|
||||
$global:serverStopRequested = $false
|
||||
while ( -not $global:serverStopRequested ) {
|
||||
try {
|
||||
Start-HttpCloudEventListener -Url $ServerUrl -Handler {
|
||||
$requestCloudEvent = $args[0]
|
||||
$response = $args[1]
|
||||
|
@ -115,11 +119,13 @@ while ( -not $global:serverStopRequested ) {
|
|||
if ($requestCloudEventJsonData) {
|
||||
$cloudEvent = $cloudEvent | Set-CloudEventJsonData `
|
||||
-Data $requestCloudEventJsonData
|
||||
} elseif ($requestCloudEventXmlData) {
|
||||
}
|
||||
elseif ($requestCloudEventXmlData) {
|
||||
$cloudEvent = $cloudEvent | Set-CloudEventXmlData `
|
||||
-Data $requestCloudEventXmlData `
|
||||
-AttributesKeysInElementAttributes $false
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
$requestCloudEventData = $requestCloudEvent | Read-CloudEventData
|
||||
$cloudEvent = $cloudEvent | Set-CloudEventData `
|
||||
-Data $requestCloudEventData `
|
||||
|
@ -138,7 +144,8 @@ while ( -not $global:serverStopRequested ) {
|
|||
$response.OutputStream.Write($httpMessage.Body, 0, $httpMessage.Body.Length)
|
||||
$response.StatusCode = [int]([System.Net.HttpStatusCode]::OK)
|
||||
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
# No Content in all other cases
|
||||
$response.StatusCode = [int]([System.Net.HttpStatusCode]::NoContent)
|
||||
}
|
||||
|
@ -148,4 +155,8 @@ while ( -not $global:serverStopRequested ) {
|
|||
$global:serverStopRequested = $true
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
Write-Error $_
|
||||
break
|
||||
}
|
||||
}
|
|
@ -8,3 +8,4 @@ New-Variable -Option Constant -Scope 'script' -Name 'ServerSource' -Value 'ps:te
|
|||
New-Variable -Option Constant -Scope 'script' -Name 'EchoBinaryType' -Value 'echo-binary'
|
||||
New-Variable -Option Constant -Scope 'script' -Name 'EchoStructuredType' -Value 'echo-structured'
|
||||
New-Variable -Option Constant -Scope 'script' -Name 'ServerStopType' -Value 'server-stop'
|
||||
New-Variable -Option Constant -Scope 'script' -Name 'ServerPingType' -Value 'server-ping'
|
|
@ -30,7 +30,7 @@ Describe "ConvertFrom-HttpMessage Function Tests" {
|
|||
'Content-Type' = @($expectedDataContentType, 'charset=utf-8')
|
||||
'ce-specversion' = $expectedSpecVersion
|
||||
'ce-type' = $expectedType
|
||||
'ce-time' = $expectedTime.ToString("u")
|
||||
'ce-time' = $expectedTime.ToString('yyyy-MM-ddTHH:mm:ss.fffZ')
|
||||
'ce-id' = $expectedId
|
||||
'ce-source' = $expectedSource
|
||||
}
|
||||
|
@ -139,7 +139,7 @@ Describe "ConvertFrom-HttpMessage Function Tests" {
|
|||
$structuredJsonBody = @{
|
||||
'specversion' = $expectedSpecVersion
|
||||
'type' = $expectedType
|
||||
'time' = $expectedTime.ToString("u")
|
||||
'time' = $expectedTime.ToString('yyyy-MM-ddTHH:mm:ss.fffZ')
|
||||
'id' = $expectedId
|
||||
'source' = $expectedSource
|
||||
'datacontenttype' = $expectedDataContentType
|
||||
|
|
|
@ -16,7 +16,7 @@ Describe "ConvertTo-HttpMessage Function Tests" {
|
|||
$expectedType = 'test'
|
||||
$expectedSource = 'urn:test'
|
||||
$expectedId = 'test-id-1'
|
||||
$expectedTime = Get-Date -Year 2021 -Month 1 -Day 18 -Hour 12 -Minute 30 -Second 0
|
||||
$expectedTime = Get-Date -Year 2021 -Month 1 -Day 18 -Hour 12 -Minute 30 -Second 0 -Millisecond 0
|
||||
$expectedDataContentType = 'application/json'
|
||||
|
||||
$cloudEvent = New-CloudEvent `
|
||||
|
@ -44,7 +44,7 @@ Describe "ConvertTo-HttpMessage Function Tests" {
|
|||
$actual.Headers['ce-source'] | Should -Be $expectedSource
|
||||
$actual.Headers['ce-specversion'] | Should -Be $expectedSpecVersion
|
||||
$actual.Headers['ce-type'] | Should -Be $expectedType
|
||||
$actual.Headers['ce-time'] | Should -Be '2021-01-18 12:30:00Z'
|
||||
$actual.Headers['ce-time'] | Should -Be ($expectedTime.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss.fffZ'))
|
||||
$actual.Headers['ce-id'] | Should -Be $expectedId
|
||||
|
||||
## Assert Body
|
||||
|
@ -110,7 +110,7 @@ Describe "ConvertTo-HttpMessage Function Tests" {
|
|||
$expectedType = 'test'
|
||||
$expectedSource = 'urn:test'
|
||||
$expectedId = 'test-id-1'
|
||||
$expectedTime = Get-Date -Year 2021 -Month 1 -Day 18 -Hour 12 -Minute 30 -Second 0
|
||||
$expectedTime = Get-Date -Year 2021 -Month 1 -Day 18 -Hour 12 -Minute 30 -Second 0 -Millisecond 0
|
||||
$expectedDataContentType = 'application/json'
|
||||
|
||||
$cloudEvent = New-CloudEvent `
|
||||
|
@ -141,7 +141,7 @@ Describe "ConvertTo-HttpMessage Function Tests" {
|
|||
$actual.Headers['ce-source'] | Should -Be $expectedSource
|
||||
$actual.Headers['ce-specversion'] | Should -Be $expectedSpecVersion
|
||||
$actual.Headers['ce-type'] | Should -Be $expectedType
|
||||
$actual.Headers['ce-time'] | Should -Be '2021-01-18 12:30:00Z'
|
||||
$actual.Headers['ce-time'] | Should -Be ($expectedTime.ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ss.fffZ'))
|
||||
$actual.Headers['ce-id'] | Should -Be $expectedId
|
||||
|
||||
## Assert Body
|
||||
|
|
Loading…
Reference in New Issue