Browse Source

Merge pull request #51 from dotnet-architecture/dev

eShopOnContainers fork
pull/1934/head
Taras Kovalenko 5 years ago
committed by GitHub
parent
commit
3f0c46741a
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
85 changed files with 1225 additions and 963 deletions
  1. +10
    -2
      .dockerignore
  2. +5
    -0
      .gitignore
  3. +0
    -28
      build/azure-devops/apigws/azure-pipelines.yml
  4. +2
    -0
      cli-windows/set-dockernat-networkategory-to-private.ps1
  5. +38
    -34
      docker-compose.override.yml
  6. +2
    -2
      k8s/helm/deploy-all.ps1
  7. +1
    -0
      restore-packages.cmd
  8. +1
    -1
      run-docker-compose-build.ps1
  9. +1
    -0
      scripts/restore-packages
  10. +1
    -0
      scripts/restore-packages.cmd
  11. +13
    -3
      src/ApiGateways/ApiGw-Base/Dockerfile
  12. +13
    -3
      src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile
  13. +13
    -3
      src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile
  14. +27
    -9
      src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.cs
  15. +4
    -1
      src/BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEntry.cs
  16. +4
    -3
      src/BuildingBlocks/EventBus/IntegrationEventLogEF/Services/IIntegrationEventLogService.cs
  17. +9
    -9
      src/BuildingBlocks/EventBus/IntegrationEventLogEF/Services/IntegrationEventLogService.cs
  18. +16
    -6
      src/Services/Basket/Basket.API/Dockerfile
  19. +13
    -3
      src/Services/Catalog/Catalog.API/Dockerfile
  20. +50
    -0
      src/Services/Catalog/Catalog.API/Infrastructure/IntegrationEventMigrations/20190507184807_AddTransactionId.Designer.cs
  21. +22
    -0
      src/Services/Catalog/Catalog.API/Infrastructure/IntegrationEventMigrations/20190507184807_AddTransactionId.cs
  22. +18
    -0
      src/Services/Catalog/Catalog.API/Infrastructure/IntegrationEventMigrations/IntegrationEventLogContextDesignTimeFactory.cs
  23. +9
    -3
      src/Services/Catalog/Catalog.API/Infrastructure/IntegrationEventMigrations/IntegrationEventLogContextModelSnapshot.cs
  24. +1
    -1
      src/Services/Catalog/Catalog.API/IntegrationEvents/CatalogIntegrationEventService.cs
  25. +12
    -7
      src/Services/Identity/Identity.API/Controllers/AccountController.cs
  26. +13
    -3
      src/Services/Identity/Identity.API/Dockerfile
  27. +3
    -1
      src/Services/Identity/Identity.API/appsettings.json
  28. +13
    -3
      src/Services/Location/Locations.API/Dockerfile
  29. +13
    -3
      src/Services/Marketing/Marketing.API/Dockerfile
  30. +1
    -2
      src/Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj
  31. +2
    -2
      src/Services/Marketing/Marketing.FunctionalTests/UserLocationRoleScenarios.cs
  32. +5
    -1
      src/Services/Ordering/Ordering.API/Application/Behaviors/TransactionBehaviour.cs
  33. +1
    -1
      src/Services/Ordering/Ordering.API/Application/Commands/CancelOrderCommandHandler.cs
  34. +1
    -1
      src/Services/Ordering/Ordering.API/Application/Commands/CreateOrderCommandHandler.cs
  35. +1
    -1
      src/Services/Ordering/Ordering.API/Application/Commands/IdentifiedCommandHandler.cs
  36. +1
    -1
      src/Services/Ordering/Ordering.API/Application/Commands/SetAwaitingValidationOrderStatusCommandHandler.cs
  37. +2
    -2
      src/Services/Ordering/Ordering.API/Application/Commands/SetPaidOrderStatusCommandHandler.cs
  38. +2
    -2
      src/Services/Ordering/Ordering.API/Application/Commands/SetStockConfirmedOrderStatusCommandHandler.cs
  39. +2
    -2
      src/Services/Ordering/Ordering.API/Application/Commands/SetStockRejectedOrderStatusCommandHandler.cs
  40. +1
    -1
      src/Services/Ordering/Ordering.API/Application/Commands/ShipOrderCommandHandler.cs
  41. +1
    -1
      src/Services/Ordering/Ordering.API/Application/DomainEventHandlers/OrderStartedEvent/ValidateOrAddBuyerAggregateWhenOrderStartedDomainEventHandler.cs
  42. +2
    -1
      src/Services/Ordering/Ordering.API/Application/IntegrationEvents/IOrderingIntegrationEventService.cs
  43. +4
    -4
      src/Services/Ordering/Ordering.API/Application/IntegrationEvents/OrderingIntegrationEventService.cs
  44. +16
    -6
      src/Services/Ordering/Ordering.API/Dockerfile
  45. +50
    -0
      src/Services/Ordering/Ordering.API/Infrastructure/IntegrationEventMigrations/20190507185219_AddTransactionId.Designer.cs
  46. +22
    -0
      src/Services/Ordering/Ordering.API/Infrastructure/IntegrationEventMigrations/20190507185219_AddTransactionId.cs
  47. +18
    -0
      src/Services/Ordering/Ordering.API/Infrastructure/IntegrationEventMigrations/IntegrationEventLogContextDesignTimeFactory.cs
  48. +9
    -3
      src/Services/Ordering/Ordering.API/Infrastructure/IntegrationEventMigrations/IntegrationEventLogContextModelSnapshot.cs
  49. +13
    -3
      src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile
  50. +2
    -2
      src/Services/Ordering/Ordering.Infrastructure/OrderingContext.cs
  51. +13
    -3
      src/Services/Ordering/Ordering.SignalrHub/Dockerfile
  52. +13
    -3
      src/Services/Payment/Payment.API/Dockerfile
  53. +2
    -0
      src/Services/Payment/Payment.API/IntegrationEvents/EventHandling/OrderStatusChangedToStockConfirmedIntegrationEventHandler.cs
  54. +13
    -4
      src/Services/Webhooks/Webhooks.API/Dockerfile
  55. +11
    -1
      src/Web/WebMVC/Controllers/AccountController.cs
  56. +13
    -2
      src/Web/WebMVC/Dockerfile
  57. +2
    -1
      src/Web/WebMVC/Startup.cs
  58. +4
    -2
      src/Web/WebMVC/Views/Campaigns/Details.cshtml
  59. +24
    -22
      src/Web/WebMVC/Views/Campaigns/Index.cshtml
  60. +17
    -16
      src/Web/WebMVC/Views/Catalog/Index.cshtml
  61. +2
    -2
      src/Web/WebMVC/Views/Shared/_Layout.cshtml
  62. +3
    -2
      src/Web/WebMVC/appsettings.json
  63. +1
    -1
      src/Web/WebMVC/libman.json
  64. +16
    -6
      src/Web/WebSPA/Dockerfile
  65. +9
    -9
      src/Web/WebSPA/package-lock.json
  66. +1
    -1
      src/Web/WebSPA/package.json
  67. +13
    -3
      src/Web/WebStatus/Dockerfile
  68. +37
    -0
      src/Web/WebStatus/Views/Shared/Error.cshtml
  69. +0
    -6
      src/Web/WebStatus/WebStatus.csproj
  70. +79
    -9
      src/Web/WebStatus/appsettings.json
  71. +1
    -1
      src/Web/WebStatus/libman.json
  72. +14
    -5
      src/Web/WebhookClient/Dockerfile
  73. +2
    -2
      src/Web/WebhookClient/Pages/Shared/_Layout.cshtml
  74. +415
    -181
      src/Web/WebhookClient/wwwroot/lib/jquery/dist/jquery.js
  75. +2
    -2
      src/Web/WebhookClient/wwwroot/lib/jquery/dist/jquery.min.js
  76. +1
    -1
      src/Web/WebhookClient/wwwroot/lib/jquery/dist/jquery.min.map
  77. +34
    -0
      src/csproj-files.txt
  78. +0
    -65
      tests-results/basket-test-results.xml
  79. +0
    -65
      tests-results/basket-unit-test-results.xml
  80. +0
    -89
      tests-results/catalog-test-results.xml
  81. +0
    -89
      tests-results/catalog-unit-test-results.xml
  82. +0
    -47
      tests-results/locations-test-results.xml
  83. +0
    -77
      tests-results/marketing-test-results.xml
  84. +0
    -41
      tests-results/ordering-test-results.xml
  85. +0
    -41
      tests-results/ordering-unit-test-results.xml

+ 10
- 2
.dockerignore View File

@ -7,7 +7,6 @@
docker-compose*.yml
docker-compose.dcproj
*.sln
!eShopOnContainers-ServicesAndWebApps.sln
*.md
hosts
LICENSE
@ -31,4 +30,13 @@ cli-linux
**/wwwroot/lib/*
global.json
**/appsettings.localhost.json
src/Web/WebSPA/wwwroot/
src/Web/WebSPA/wwwroot/
packages/
csproj-files/
test-results/
TestResults/
src/Mobile/
src/Web/Catalog.WebForms/
src/Web/WebMonolithic/
src/BuildingBlocks/CommandBus/
src/Services/Marketing/Infrastructure/

+ 5
- 0
.gitignore View File

@ -26,6 +26,9 @@ bld/
# Visual Studio 2015 cache/options directory
.vs/
# Dockerfile projects folder for restore-packages script
csproj-files/
# .js files created on build:
src/Web/WebMVC/wwwroot/js/site*
@ -42,6 +45,8 @@ src/Web/WebMVC/wwwroot/js/site*
*.VisualState.xml
TestResult.xml
tests-results/
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/


+ 0
- 28
build/azure-devops/apigws/azure-pipelines.yml View File

@ -50,31 +50,3 @@ jobs:
inputs:
pathtoPublish: $(Build.ArtifactStagingDirectory)/k8s/helm
artifactName: helm
- job: BuildWindows
pool:
vmImage: 'vs2017-win2016'
steps:
- task: DockerCompose@0
displayName: Compose build apigws
inputs:
dockerComposeCommand: 'build mobileshoppingapigw mobilemarketingapigw webshoppingapigw webmarketingapigw'
containerregistrytype: Container Registry
dockerRegistryEndpoint: $(registryEndpoint)
dockerComposeFile: docker-compose.yml
qualifyImageNames: true
projectName: ""
dockerComposeFileArgs: |
TAG=$(Build.SourceBranchName)
PLATFORM=win
- task: DockerCompose@0
displayName: Compose push apigws
inputs:
dockerComposeCommand: 'push mobileshoppingapigw mobilemarketingapigw webshoppingapigw webmarketingapigw'
containerregistrytype: Container Registry
dockerRegistryEndpoint: $(registryEndpoint)
dockerComposeFile: docker-compose.yml
qualifyImageNames: true
projectName: ""
dockerComposeFileArgs: |
TAG=$(Build.SourceBranchName)
PLATFORM=win

+ 2
- 0
cli-windows/set-dockernat-networkategory-to-private.ps1 View File

@ -0,0 +1,2 @@
 #Requires -RunAsAdministrator
Get-NetConnectionProfile | Where-Object { $_.InterfaceAlias -match "(DockerNAT)" } | ForEach-Object { Set-NetConnectionProfile -InterfaceIndex $_.InterfaceIndex -NetworkCategory Private }

+ 38
- 34
docker-compose.override.yml View File

@ -110,6 +110,7 @@ services:
- ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY}
- OrchestratorType=${ORCHESTRATOR_TYPE}
- UseLoadTest=${USE_LOADTEST:-False}
- Serilog__MinimumLevel__Override__Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ=Verbose
ports:
- "5102:80" # Important: In a production environment your should remove the external port (5102) kept here for microservice debugging purposes.
# The API Gateway redirects and access through the internal port (80).
@ -130,6 +131,7 @@ services:
- ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY}
- OrchestratorType=${ORCHESTRATOR_TYPE}
- UseLoadTest=${USE_LOADTEST:-False}
- Serilog__MinimumLevel__Override__Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ=Verbose
ports:
- "5111:80"
@ -168,6 +170,8 @@ services:
- AzureServiceBusEnabled=False
- ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY}
- OrchestratorType=${ORCHESTRATOR_TYPE}
- Serilog__MinimumLevel__Override__Payment.API.IntegrationEvents.EventHandling=Verbose
- Serilog__MinimumLevel__Override__Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ=Verbose
ports:
- "5108:80" # Important: In a production environment your should remove the external port (5108) kept here for microservice debugging purposes.
# The API Gateway redirects and access through the internal port (80).
@ -326,40 +330,40 @@ services:
environment:
- ASPNETCORE_ENVIRONMENT=Production
- ASPNETCORE_URLS=http://0.0.0.0:80
- HealthChecks-UI__HealthChecks__1__Name=WebMVC HTTP Check
- HealthChecks-UI__HealthChecks__1__Uri=http://webmvc/hc
- HealthChecks-UI__HealthChecks__2__Name=WebSPA HTTP Check
- HealthChecks-UI__HealthChecks__2__Uri=http://webspa/hc
- HealthChecks-UI__HealthChecks__3__Name=Web Shopping Aggregator GW HTTP Check
- HealthChecks-UI__HealthChecks__3__Uri=http://webshoppingagg/hc
- HealthChecks-UI__HealthChecks__4__Name=Mobile Shopping Aggregator HTTP Check
- HealthChecks-UI__HealthChecks__4__Uri=http://mobileshoppingagg/hc
- HealthChecks-UI__HealthChecks__5__Name=Mobile Shopping API GW HTTP Check
- HealthChecks-UI__HealthChecks__5__Uri=http://mobileshoppingapigw/hc
- HealthChecks-UI__HealthChecks__6__Name=Mobile Marketing API GW HTTP Check
- HealthChecks-UI__HealthChecks__6__Uri=http://mobilemarketingapigw/hc
- HealthChecks-UI__HealthChecks__7__Name=Web Shopping API GW HTTP Check
- HealthChecks-UI__HealthChecks__7__Uri=http://webshoppingapigw/hc
- HealthChecks-UI__HealthChecks__8__Name=Web Marketing API GW HTTP Check
- HealthChecks-UI__HealthChecks__8__Uri=http://webmarketingapigw/hc
- HealthChecks-UI__HealthChecks__9__Name=Ordering HTTP Check
- HealthChecks-UI__HealthChecks__9__Uri=http://ordering.api/hc
- HealthChecks-UI__HealthChecks__10__Name=Ordering HTTP Background Check
- HealthChecks-UI__HealthChecks__10__Uri=http://ordering.backgroundtasks/hc
- HealthChecks-UI__HealthChecks__11__Name=Basket HTTP Check
- HealthChecks-UI__HealthChecks__11__Uri=http://basket.api/hc
- HealthChecks-UI__HealthChecks__12__Name=Catalog HTTP Check
- HealthChecks-UI__HealthChecks__12__Uri=http://catalog.api/hc
- HealthChecks-UI__HealthChecks__13__Name=Identity HTTP Check
- HealthChecks-UI__HealthChecks__13__Uri=http://identity.api/hc
- HealthChecks-UI__HealthChecks__14__Name=Marketing HTTP Check
- HealthChecks-UI__HealthChecks__14__Uri=http://marketing.api/hc
- HealthChecks-UI__HealthChecks__15__Name=Locations HTTP Check
- HealthChecks-UI__HealthChecks__15__Uri=http://locations.api/hc
- HealthChecks-UI__HealthChecks__16__Name=Payments HTTP Check
- HealthChecks-UI__HealthChecks__16__Uri=http://payment.api/hc
- HealthChecks-UI__HealthChecks__17__Name=Ordering SignalRHub HTTP Check
- HealthChecks-UI__HealthChecks__17__Uri=http://ordering.signalrhub/hc
- HealthChecks-UI__HealthChecks__0__Name=WebMVC HTTP Check
- HealthChecks-UI__HealthChecks__0__Uri=http://webmvc/hc
- HealthChecks-UI__HealthChecks__1__Name=WebSPA HTTP Check
- HealthChecks-UI__HealthChecks__1__Uri=http://webspa/hc
- HealthChecks-UI__HealthChecks__2__Name=Web Shopping Aggregator GW HTTP Check
- HealthChecks-UI__HealthChecks__2__Uri=http://webshoppingagg/hc
- HealthChecks-UI__HealthChecks__3__Name=Mobile Shopping Aggregator HTTP Check
- HealthChecks-UI__HealthChecks__3__Uri=http://mobileshoppingagg/hc
- HealthChecks-UI__HealthChecks__4__Name=Mobile Shopping API GW HTTP Check
- HealthChecks-UI__HealthChecks__4__Uri=http://mobileshoppingapigw/hc
- HealthChecks-UI__HealthChecks__5__Name=Mobile Marketing API GW HTTP Check
- HealthChecks-UI__HealthChecks__5__Uri=http://mobilemarketingapigw/hc
- HealthChecks-UI__HealthChecks__6__Name=Web Shopping API GW HTTP Check
- HealthChecks-UI__HealthChecks__6__Uri=http://webshoppingapigw/hc
- HealthChecks-UI__HealthChecks__7__Name=Web Marketing API GW HTTP Check
- HealthChecks-UI__HealthChecks__7__Uri=http://webmarketingapigw/hc
- HealthChecks-UI__HealthChecks__8__Name=Ordering HTTP Check
- HealthChecks-UI__HealthChecks__8__Uri=http://ordering.api/hc
- HealthChecks-UI__HealthChecks__9__Name=Ordering HTTP Background Check
- HealthChecks-UI__HealthChecks__9__Uri=http://ordering.backgroundtasks/hc
- HealthChecks-UI__HealthChecks__10__Name=Basket HTTP Check
- HealthChecks-UI__HealthChecks__10__Uri=http://basket.api/hc
- HealthChecks-UI__HealthChecks__11__Name=Catalog HTTP Check
- HealthChecks-UI__HealthChecks__11__Uri=http://catalog.api/hc
- HealthChecks-UI__HealthChecks__12__Name=Identity HTTP Check
- HealthChecks-UI__HealthChecks__12__Uri=http://identity.api/hc
- HealthChecks-UI__HealthChecks__13__Name=Marketing HTTP Check
- HealthChecks-UI__HealthChecks__13__Uri=http://marketing.api/hc
- HealthChecks-UI__HealthChecks__14__Name=Locations HTTP Check
- HealthChecks-UI__HealthChecks__14__Uri=http://locations.api/hc
- HealthChecks-UI__HealthChecks__15__Name=Payments HTTP Check
- HealthChecks-UI__HealthChecks__15__Uri=http://payment.api/hc
- HealthChecks-UI__HealthChecks__16__Name=Ordering SignalRHub HTTP Check
- HealthChecks-UI__HealthChecks__16__Uri=http://ordering.signalrhub/hc
- OrderingBackgroundTasksUrl=http://ordering.backgroundtasks/hc
- ApplicationInsights__InstrumentationKey=${INSTRUMENTATION_KEY}
- OrchestratorType=${ORCHESTRATOR_TYPE}


+ 2
- 2
k8s/helm/deploy-all.ps1 View File

@ -45,7 +45,7 @@ if ([string]::IsNullOrEmpty($dns)) {
if ($clean) {
Write-Host "Cleaning previous helm releases..." -ForegroundColor Green
helm delete --purge $(helm ls -q)
helm delete --purge $(helm ls -q eshop)
Write-Host "Previous releases deleted" -ForegroundColor Green
}
@ -91,4 +91,4 @@ else {
Write-Host "eShopOnContainers non-infrastructure charts aren't installed (-deployCharts is false)" -ForegroundColor Yellow
}
Write-Host "helm charts installed." -ForegroundColor Green
Write-Host "helm charts installed." -ForegroundColor Green

+ 1
- 0
restore-packages.cmd View File

@ -0,0 +1 @@
for /R %%f in (*.csproj) do dotnet restore --no-dependencies %%f

+ 1
- 1
run-docker-compose-build.ps1 View File

@ -1,6 +1,6 @@
$startTime = $(Get-Date)
docker-compose build
docker-compose build --build-arg RUN=scripts/restore-packages
$elapsedTime = $(Get-Date) - $startTime


+ 1
- 0
scripts/restore-packages View File

@ -0,0 +1 @@
echo RESTORING ALL PACKAGES...; for f in /src/csproj-files/*.csproj; do dotnet restore $f; done

+ 1
- 0
scripts/restore-packages.cmd View File

@ -0,0 +1 @@
for %%p in (csproj-files\*.csproj) do dotnet restore %%p

+ 13
- 3
src/ApiGateways/ApiGw-Base/Dockerfile View File

@ -4,13 +4,23 @@ EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /src
COPY scripts scripts/
COPY src/ApiGateways/*/*.csproj /src/csproj-files/
COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/
COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . .
WORKDIR /src/src/ApiGateways/ApiGw-Base/
RUN dotnet restore -nowarn:msb3202,nu1503
RUN dotnet build -c Release -o /app
RUN dotnet publish -c Release -o /app
FROM build AS publish
RUN dotnet publish -c Release -o /app
FROM base AS final
WORKDIR /app


+ 13
- 3
src/ApiGateways/Mobile.Bff.Shopping/aggregator/Dockerfile View File

@ -4,13 +4,23 @@ EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /src
COPY scripts scripts/
COPY src/ApiGateways/*/*.csproj /src/csproj-files/
COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/
COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . .
WORKDIR /src/src/ApiGateways/Mobile.Bff.Shopping/aggregator
RUN dotnet restore -nowarn:msb3202,nu1503
RUN dotnet build --no-restore -c Release -o /app
RUN dotnet publish -c Release -o /app
FROM build AS publish
RUN dotnet publish --no-restore -c Release -o /app
FROM base AS final
WORKDIR /app


+ 13
- 3
src/ApiGateways/Web.Bff.Shopping/aggregator/Dockerfile View File

@ -4,13 +4,23 @@ EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /src
COPY scripts scripts/
COPY src/ApiGateways/*/*.csproj /src/csproj-files/
COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/
COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . .
WORKDIR /src/src/ApiGateways/Web.Bff.Shopping/aggregator
RUN dotnet restore -nowarn:msb3202,nu1503
RUN dotnet build --no-restore -c Release -o /app
RUN dotnet publish -c Release -o /app
FROM build AS publish
RUN dotnet publish --no-restore -c Release -o /app
FROM base AS final
WORKDIR /app


+ 27
- 9
src/BuildingBlocks/EventBus/EventBusRabbitMQ/EventBusRabbitMQ.cs View File

@ -80,13 +80,16 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ
_logger.LogWarning(ex, "Could not publish event: {EventId} after {Timeout}s ({ExceptionMessage})", @event.Id, $"{time.TotalSeconds:n1}", ex.Message);
});
var eventName = @event.GetType().Name;
_logger.LogTrace("Creating RabbitMQ channel to publish event: {EventId} ({EventName})", @event.Id, eventName);
using (var channel = _persistentConnection.CreateModel())
{
var eventName = @event.GetType()
.Name;
channel.ExchangeDeclare(exchange: BROKER_NAME,
type: "direct");
_logger.LogTrace("Declaring RabbitMQ exchange to publish event: {EventId}", @event.Id);
channel.ExchangeDeclare(exchange: BROKER_NAME, type: "direct");
var message = JsonConvert.SerializeObject(@event);
var body = Encoding.UTF8.GetBytes(message);
@ -96,11 +99,14 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ
var properties = channel.CreateBasicProperties();
properties.DeliveryMode = 2; // persistent
channel.BasicPublish(exchange: BROKER_NAME,
routingKey: eventName,
mandatory: true,
basicProperties: properties,
body: body);
_logger.LogTrace("Publishing event to RabbitMQ: {EventId}", @event.Id);
channel.BasicPublish(
exchange: BROKER_NAME,
routingKey: eventName,
mandatory: true,
basicProperties: properties,
body: body);
});
}
}
@ -176,6 +182,8 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ
private void StartBasicConsume()
{
_logger.LogTrace("Starting RabbitMQ basic consume");
if (_consumerChannel != null)
{
var consumer = new AsyncEventingBasicConsumer(_consumerChannel);
@ -225,6 +233,8 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ
_persistentConnection.TryConnect();
}
_logger.LogTrace("Creating RabbitMQ consumer channel");
var channel = _persistentConnection.CreateModel();
channel.ExchangeDeclare(exchange: BROKER_NAME,
@ -238,6 +248,8 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ
channel.CallbackException += (sender, ea) =>
{
_logger.LogWarning(ea.Exception, "Recreating RabbitMQ consumer channel");
_consumerChannel.Dispose();
_consumerChannel = CreateConsumerChannel();
StartBasicConsume();
@ -248,6 +260,8 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ
private async Task ProcessEvent(string eventName, string message)
{
_logger.LogTrace("Processing RabbitMQ event: {EventName}", eventName);
if (_subsManager.HasSubscriptionsForEvent(eventName))
{
using (var scope = _autofac.BeginLifetimeScope(AUTOFAC_SCOPE_NAME))
@ -274,6 +288,10 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.EventBusRabbitMQ
}
}
}
else
{
_logger.LogWarning("No subscription for RabbitMQ event: {EventName}", eventName);
}
}
}
}

+ 4
- 1
src/BuildingBlocks/EventBus/IntegrationEventLogEF/IntegrationEventLogEntry.cs View File

@ -12,7 +12,7 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF
public class IntegrationEventLogEntry
{
private IntegrationEventLogEntry() { }
public IntegrationEventLogEntry(IntegrationEvent @event)
public IntegrationEventLogEntry(IntegrationEvent @event, Guid transactionId)
{
EventId = @event.Id;
CreationTime = @event.CreationDate;
@ -20,7 +20,9 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF
Content = JsonConvert.SerializeObject(@event);
State = EventStateEnum.NotPublished;
TimesSent = 0;
TransactionId = transactionId.ToString();
}
public Guid EventId { get; private set; }
public string EventTypeName { get; private set; }
[NotMapped]
@ -31,6 +33,7 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF
public int TimesSent { get; set; }
public DateTime CreationTime { get; private set; }
public string Content { get; private set; }
public string TransactionId { get; private set; }
public IntegrationEventLogEntry DeserializeJsonContent(Type type)
{


+ 4
- 3
src/BuildingBlocks/EventBus/IntegrationEventLogEF/Services/IIntegrationEventLogService.cs View File

@ -1,4 +1,5 @@
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events;
using Microsoft.EntityFrameworkCore.Storage;
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events;
using System;
using System.Collections.Generic;
using System.Data.Common;
@ -9,8 +10,8 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF.Servi
{
public interface IIntegrationEventLogService
{
Task<IEnumerable<IntegrationEventLogEntry>> RetrieveEventLogsPendingToPublishAsync();
Task SaveEventAsync(IntegrationEvent @event, DbTransaction transaction);
Task<IEnumerable<IntegrationEventLogEntry>> RetrieveEventLogsPendingToPublishAsync(Guid transactionId);
Task SaveEventAsync(IntegrationEvent @event, IDbContextTransaction transaction);
Task MarkEventAsPublishedAsync(Guid eventId);
Task MarkEventAsInProgressAsync(Guid eventId);
Task MarkEventAsFailedAsync(Guid eventId);


+ 9
- 9
src/BuildingBlocks/EventBus/IntegrationEventLogEF/Services/IntegrationEventLogService.cs View File

@ -1,5 +1,6 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Diagnostics;
using Microsoft.EntityFrameworkCore.Storage;
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus;
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events;
using Newtonsoft.Json;
@ -34,25 +35,24 @@ namespace Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF.Servi
.ToList();
}
public async Task<IEnumerable<IntegrationEventLogEntry>> RetrieveEventLogsPendingToPublishAsync()
public async Task<IEnumerable<IntegrationEventLogEntry>> RetrieveEventLogsPendingToPublishAsync(Guid transactionId)
{
var tid = transactionId.ToString();
return await _integrationEventLogContext.IntegrationEventLogs
.Where(e => e.State == EventStateEnum.NotPublished)
.Where(e => e.TransactionId == tid && e.State == EventStateEnum.NotPublished)
.OrderBy(o => o.CreationTime)
.Select(e => e.DeserializeJsonContent(_eventTypes.Find(t=> t.Name == e.EventTypeShortName)))
.ToListAsync();
}
public Task SaveEventAsync(IntegrationEvent @event, DbTransaction transaction)
public Task SaveEventAsync(IntegrationEvent @event, IDbContextTransaction transaction)
{
if (transaction == null)
{
throw new ArgumentNullException(nameof(transaction), $"A {typeof(DbTransaction).FullName} is required as a pre-requisite to save the event.");
}
if (transaction == null) throw new ArgumentNullException(nameof(transaction));
var eventLogEntry = new IntegrationEventLogEntry(@event);
var eventLogEntry = new IntegrationEventLogEntry(@event, transaction.TransactionId);
_integrationEventLogContext.Database.UseTransaction(transaction);
_integrationEventLogContext.Database.UseTransaction(transaction.GetDbTransaction());
_integrationEventLogContext.IntegrationEventLogs.Add(eventLogEntry);
return _integrationEventLogContext.SaveChangesAsync();


+ 16
- 6
src/Services/Basket/Basket.API/Dockerfile View File

@ -4,19 +4,29 @@ EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /src
COPY scripts scripts/
COPY src/ApiGateways/*/*.csproj /src/csproj-files/
COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/
COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . .
WORKDIR /src/src/Services/Basket/Basket.API
RUN dotnet restore -nowarn:msb3202,nu1503
RUN dotnet build --no-restore -c Release -o /app
FROM build as functionaltest
WORKDIR /src/src/Services/Basket/Basket.FunctionalTests
RUN dotnet publish -c Release -o /app
FROM build as unittest
WORKDIR /src/src/Services/Basket/Basket.UnitTests
FROM build as functionaltest
WORKDIR /src/src/Services/Basket/Basket.FunctionalTests
FROM build AS publish
RUN dotnet publish --no-restore -c Release -o /app
FROM base AS final
WORKDIR /app


+ 13
- 3
src/Services/Catalog/Catalog.API/Dockerfile View File

@ -4,10 +4,21 @@ EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /src
COPY scripts scripts/
COPY src/ApiGateways/*/*.csproj /src/csproj-files/
COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/
COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . .
WORKDIR /src/src/Services/Catalog/Catalog.API
RUN dotnet restore -nowarn:msb3202,nu1503
RUN dotnet build --no-restore -c Release -o /app
RUN dotnet publish -c Release -o /app
FROM build as unittest
WORKDIR /src/src/Services/Catalog/Catalog.UnitTests
@ -16,7 +27,6 @@ FROM build as functionaltest
WORKDIR /src/src/Services/Catalog/Catalog.FunctionalTests
FROM build AS publish
RUN dotnet publish --no-restore -c Release -o /app
FROM base AS final
WORKDIR /app


+ 50
- 0
src/Services/Catalog/Catalog.API/Infrastructure/IntegrationEventMigrations/20190507184807_AddTransactionId.Designer.cs View File

@ -0,0 +1,50 @@
// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF;
namespace Catalog.API.Infrastructure.IntegrationEventMigrations
{
[DbContext(typeof(IntegrationEventLogContext))]
[Migration("20190507184807_AddTransactionId")]
partial class AddTransactionId
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "2.2.3-servicing-35854")
.HasAnnotation("Relational:MaxIdentifierLength", 128)
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
modelBuilder.Entity("Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF.IntegrationEventLogEntry", b =>
{
b.Property<Guid>("EventId")
.ValueGeneratedOnAdd();
b.Property<string>("Content")
.IsRequired();
b.Property<DateTime>("CreationTime");
b.Property<string>("EventTypeName")
.IsRequired();
b.Property<int>("State");
b.Property<int>("TimesSent");
b.Property<string>("TransactionId");
b.HasKey("EventId");
b.ToTable("IntegrationEventLog");
});
#pragma warning restore 612, 618
}
}
}

+ 22
- 0
src/Services/Catalog/Catalog.API/Infrastructure/IntegrationEventMigrations/20190507184807_AddTransactionId.cs View File

@ -0,0 +1,22 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace Catalog.API.Infrastructure.IntegrationEventMigrations
{
public partial class AddTransactionId : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "TransactionId",
table: "IntegrationEventLog",
nullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "TransactionId",
table: "IntegrationEventLog");
}
}
}

+ 18
- 0
src/Services/Catalog/Catalog.API/Infrastructure/IntegrationEventMigrations/IntegrationEventLogContextDesignTimeFactory.cs View File

@ -0,0 +1,18 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Design;
using Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF;
namespace Catalog.API.Infrastructure.IntegrationEventMigrations
{
public class IntegrationEventLogContextDesignTimeFactory : IDesignTimeDbContextFactory<IntegrationEventLogContext>
{
public IntegrationEventLogContext CreateDbContext(string[] args)
{
var optionsBuilder = new DbContextOptionsBuilder<IntegrationEventLogContext>();
optionsBuilder.UseSqlServer(".", options => options.MigrationsAssembly(GetType().Assembly.GetName().Name));
return new IntegrationEventLogContext(optionsBuilder.Options);
}
}
}

+ 9
- 3
src/Services/Catalog/Catalog.API/Infrastructure/IntegrationEventMigrations/IntegrationEventLogContextModelSnapshot.cs View File

@ -1,8 +1,9 @@
using System;
// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF;
namespace Catalog.API.Migrations
@ -12,8 +13,10 @@ namespace Catalog.API.Migrations
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "1.1.1")
.HasAnnotation("ProductVersion", "2.2.3-servicing-35854")
.HasAnnotation("Relational:MaxIdentifierLength", 128)
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
modelBuilder.Entity("Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF.IntegrationEventLogEntry", b =>
@ -33,10 +36,13 @@ namespace Catalog.API.Migrations
b.Property<int>("TimesSent");
b.Property<string>("TransactionId");
b.HasKey("EventId");
b.ToTable("IntegrationEventLog");
});
#pragma warning restore 612, 618
}
}
}

+ 1
- 1
src/Services/Catalog/Catalog.API/IntegrationEvents/CatalogIntegrationEventService.cs View File

@ -62,7 +62,7 @@ namespace Catalog.API.IntegrationEvents
{
// Achieving atomicity between original catalog database operation and the IntegrationEventLog thanks to a local transaction
await _catalogContext.SaveChangesAsync();
await _eventLogService.SaveEventAsync(evt, _catalogContext.Database.CurrentTransaction.GetDbTransaction());
await _eventLogService.SaveEventAsync(evt, _catalogContext.Database.CurrentTransaction);
});
}
}


+ 12
- 7
src/Services/Identity/Identity.API/Controllers/AccountController.cs View File

@ -15,6 +15,7 @@ using Microsoft.AspNetCore.Mvc;
using Microsoft.eShopOnContainers.Services.Identity.API.Models;
using Microsoft.eShopOnContainers.Services.Identity.API.Models.AccountViewModels;
using Microsoft.eShopOnContainers.Services.Identity.API.Services;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
namespace Microsoft.eShopOnContainers.Services.Identity.API.Controllers
@ -32,6 +33,7 @@ namespace Microsoft.eShopOnContainers.Services.Identity.API.Controllers
private readonly IClientStore _clientStore;
private readonly ILogger<AccountController> _logger;
private readonly UserManager<ApplicationUser> _userManager;
private readonly IConfiguration _configuration;
public AccountController(
@ -40,13 +42,15 @@ namespace Microsoft.eShopOnContainers.Services.Identity.API.Controllers
IIdentityServerInteractionService interaction,
IClientStore clientStore,
ILogger<AccountController> logger,
UserManager<ApplicationUser> userManager)
UserManager<ApplicationUser> userManager,
IConfiguration configuration)
{
_loginService = loginService;
_interaction = interaction;
_clientStore = clientStore;
_logger = logger;
_userManager = userManager;
_configuration = configuration;
}
/// <summary>
@ -81,20 +85,21 @@ namespace Microsoft.eShopOnContainers.Services.Identity.API.Controllers
if (await _loginService.ValidateCredentials(user, model.Password))
{
var tokenLifetime = _configuration.GetValue("TokenLifetimeMinutes", 120);
var props = new AuthenticationProperties
{
ExpiresUtc = DateTimeOffset.UtcNow.AddHours(2),
ExpiresUtc = DateTimeOffset.UtcNow.AddMinutes(tokenLifetime),
AllowRefresh = true,
RedirectUri = model.ReturnUrl
};
if (model.RememberMe)
{
props = new AuthenticationProperties
{
IsPersistent = true,
ExpiresUtc = DateTimeOffset.UtcNow.AddYears(10)
};
var permanentTokenLifetime = _configuration.GetValue("PermanentTokenLifetimeDays", 365);
props.ExpiresUtc = DateTimeOffset.UtcNow.AddDays(permanentTokenLifetime);
props.IsPersistent = true;
};
await _loginService.SignInAsync(user, props);


+ 13
- 3
src/Services/Identity/Identity.API/Dockerfile View File

@ -4,13 +4,23 @@ EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /src
COPY scripts scripts/
COPY src/ApiGateways/*/*.csproj /src/csproj-files/
COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/
COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . .
WORKDIR /src/src/Services/Identity/Identity.API
RUN dotnet restore -nowarn:msb3202,nu1503
RUN dotnet build --no-restore -c Release -o /app
RUN dotnet publish -c Release -o /app
FROM build AS publish
RUN dotnet publish --no-restore -c Release -o /app
FROM base AS final
WORKDIR /app


+ 3
- 1
src/Services/Identity/Identity.API/appsettings.json View File

@ -25,5 +25,7 @@
"Name": "eshop",
"ClientId": "your-clien-id",
"ClientSecret": "your-client-secret"
}
},
"TokenLifetimeMinutes": 120,
"PermanentTokenLifetimeDays": 365
}

+ 13
- 3
src/Services/Location/Locations.API/Dockerfile View File

@ -4,16 +4,26 @@ EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /src
COPY scripts scripts/
COPY src/ApiGateways/*/*.csproj /src/csproj-files/
COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/
COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . .
WORKDIR /src/src/Services/Location/Locations.API
RUN dotnet restore -nowarn:msb3202,nu1503
RUN dotnet build --no-restore -c Release -o /app
RUN dotnet publish -c Release -o /app
FROM build as functionaltest
WORKDIR /src/src/Services/Location/Locations.FunctionalTests
FROM build AS publish
RUN dotnet publish --no-restore -c Release -o /app
FROM base AS final
WORKDIR /app


+ 13
- 3
src/Services/Marketing/Marketing.API/Dockerfile View File

@ -4,16 +4,26 @@ EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /src
COPY scripts scripts/
COPY src/ApiGateways/*/*.csproj /src/csproj-files/
COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/
COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . .
WORKDIR /src/src/Services/Marketing/Marketing.API
RUN dotnet restore -nowarn:msb3202,nu1503
RUN dotnet build --no-restore -c Release -o /app
RUN dotnet publish -c Release -o /app
FROM build as functionaltest
WORKDIR /src/src/Services/Marketing/Marketing.FunctionalTests
FROM build AS publish
RUN dotnet publish --no-restore -c Release -o /app
FROM base AS final
WORKDIR /app


+ 1
- 2
src/Services/Marketing/Marketing.FunctionalTests/Marketing.FunctionalTests.csproj View File

@ -19,7 +19,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="2.2.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.9.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.0.1" />
<PackageReference Include="Microsoft.AspNetCore.TestHost" Version="2.2.0" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1">
@ -30,7 +30,6 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\Web\WebMVC\WebMVC.csproj" />
<ProjectReference Include="..\Marketing.API\Marketing.API.csproj" />
</ItemGroup>


+ 2
- 2
src/Services/Marketing/Marketing.FunctionalTests/UserLocationRoleScenarios.cs View File

@ -28,7 +28,7 @@ namespace Marketing.FunctionalTests
[Fact]
public async Task Post_add_new_user_location_rule_and_response_ok_status_code()
{
var campaignId = 81;
var campaignId = 2;
using (var server = CreateServer())
{
@ -44,7 +44,7 @@ namespace Marketing.FunctionalTests
[Fact]
public async Task Delete_delete_user_location_role_and_response_not_content_status_code()
{
var campaignId = 81;
var campaignId = 2;
using (var server = CreateServer())
{


+ 5
- 1
src/Services/Ordering/Ordering.API/Application/Behaviors/TransactionBehaviour.cs View File

@ -42,6 +42,8 @@ namespace Ordering.API.Application.Behaviors
await strategy.ExecuteAsync(async () =>
{
Guid transactionId;
using (var transaction = await _dbContext.BeginTransactionAsync())
using (LogContext.PushProperty("TransactionContext", transaction.TransactionId))
{
@ -52,9 +54,11 @@ namespace Ordering.API.Application.Behaviors
_logger.LogInformation("----- Commit transaction {TransactionId} for {CommandName}", transaction.TransactionId, typeName);
await _dbContext.CommitTransactionAsync(transaction);
transactionId = transaction.TransactionId;
}
await _orderingIntegrationEventService.PublishEventsThroughEventBusAsync();
await _orderingIntegrationEventService.PublishEventsThroughEventBusAsync(transactionId);
});
return response;


+ 1
- 1
src/Services/Ordering/Ordering.API/Application/Commands/CancelOrderCommandHandler.cs View File

@ -33,7 +33,7 @@ namespace Ordering.API.Application.Commands
}
orderToUpdate.SetCancelledStatus();
return await _orderRepository.UnitOfWork.SaveEntitiesAsync();
return await _orderRepository.UnitOfWork.SaveEntitiesAsync(cancellationToken);
}
}


+ 1
- 1
src/Services/Ordering/Ordering.API/Application/Commands/CreateOrderCommandHandler.cs View File

@ -58,7 +58,7 @@
_orderRepository.Add(order);
return await _orderRepository.UnitOfWork
.SaveEntitiesAsync();
.SaveEntitiesAsync(cancellationToken);
}
}


+ 1
- 1
src/Services/Ordering/Ordering.API/Application/Commands/IdentifiedCommandHandler.cs View File

@ -96,7 +96,7 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.API.Application.Commands
command);
// Send the embeded business command to mediator so it runs its related CommandHandler
var result = await _mediator.Send(command);
var result = await _mediator.Send(command, cancellationToken);
_logger.LogInformation(
"----- Command result: {@Result} - {CommandName} - {IdProperty}: {CommandId} ({@Command})",


+ 1
- 1
src/Services/Ordering/Ordering.API/Application/Commands/SetAwaitingValidationOrderStatusCommandHandler.cs View File

@ -33,7 +33,7 @@ namespace Ordering.API.Application.Commands
}
orderToUpdate.SetAwaitingValidationStatus();
return await _orderRepository.UnitOfWork.SaveEntitiesAsync();
return await _orderRepository.UnitOfWork.SaveEntitiesAsync(cancellationToken);
}
}


+ 2
- 2
src/Services/Ordering/Ordering.API/Application/Commands/SetPaidOrderStatusCommandHandler.cs View File

@ -27,7 +27,7 @@ namespace Ordering.API.Application.Commands
public async Task<bool> Handle(SetPaidOrderStatusCommand command, CancellationToken cancellationToken)
{
// Simulate a work time for validating the payment
await Task.Delay(10000);
await Task.Delay(10000, cancellationToken);
var orderToUpdate = await _orderRepository.GetAsync(command.OrderNumber);
if(orderToUpdate == null)
@ -36,7 +36,7 @@ namespace Ordering.API.Application.Commands
}
orderToUpdate.SetPaidStatus();
return await _orderRepository.UnitOfWork.SaveEntitiesAsync();
return await _orderRepository.UnitOfWork.SaveEntitiesAsync(cancellationToken);
}
}


+ 2
- 2
src/Services/Ordering/Ordering.API/Application/Commands/SetStockConfirmedOrderStatusCommandHandler.cs View File

@ -27,7 +27,7 @@ namespace Ordering.API.Application.Commands
public async Task<bool> Handle(SetStockConfirmedOrderStatusCommand command, CancellationToken cancellationToken)
{
// Simulate a work time for confirming the stock
await Task.Delay(10000);
await Task.Delay(10000, cancellationToken);
var orderToUpdate = await _orderRepository.GetAsync(command.OrderNumber);
if(orderToUpdate == null)
@ -36,7 +36,7 @@ namespace Ordering.API.Application.Commands
}
orderToUpdate.SetStockConfirmedStatus();
return await _orderRepository.UnitOfWork.SaveEntitiesAsync();
return await _orderRepository.UnitOfWork.SaveEntitiesAsync(cancellationToken);
}
}


+ 2
- 2
src/Services/Ordering/Ordering.API/Application/Commands/SetStockRejectedOrderStatusCommandHandler.cs View File

@ -27,7 +27,7 @@ namespace Ordering.API.Application.Commands
public async Task<bool> Handle(SetStockRejectedOrderStatusCommand command, CancellationToken cancellationToken)
{
// Simulate a work time for rejecting the stock
await Task.Delay(10000);
await Task.Delay(10000, cancellationToken);
var orderToUpdate = await _orderRepository.GetAsync(command.OrderNumber);
if(orderToUpdate == null)
@ -37,7 +37,7 @@ namespace Ordering.API.Application.Commands
orderToUpdate.SetCancelledStatusWhenStockIsRejected(command.OrderStockItems);
return await _orderRepository.UnitOfWork.SaveEntitiesAsync();
return await _orderRepository.UnitOfWork.SaveEntitiesAsync(cancellationToken);
}
}


+ 1
- 1
src/Services/Ordering/Ordering.API/Application/Commands/ShipOrderCommandHandler.cs View File

@ -33,7 +33,7 @@ namespace Ordering.API.Application.Commands
}
orderToUpdate.SetShippedStatus();
return await _orderRepository.UnitOfWork.SaveEntitiesAsync();
return await _orderRepository.UnitOfWork.SaveEntitiesAsync(cancellationToken);
}
}


+ 1
- 1
src/Services/Ordering/Ordering.API/Application/DomainEventHandlers/OrderStartedEvent/ValidateOrAddBuyerAggregateWhenOrderStartedDomainEventHandler.cs View File

@ -56,7 +56,7 @@ namespace Ordering.API.Application.DomainEventHandlers.OrderStartedEvent
_buyerRepository.Add(buyer);
await _buyerRepository.UnitOfWork
.SaveEntitiesAsync();
.SaveEntitiesAsync(cancellationToken);
var orderStatusChangedTosubmittedIntegrationEvent = new OrderStatusChangedToSubmittedIntegrationEvent(orderStartedEvent.Order.Id, orderStartedEvent.Order.OrderStatus.Name, buyer.Name);
await _orderingIntegrationEventService.AddAndSaveEventAsync(orderStatusChangedTosubmittedIntegrationEvent);


+ 2
- 1
src/Services/Ordering/Ordering.API/Application/IntegrationEvents/IOrderingIntegrationEventService.cs View File

@ -1,11 +1,12 @@
using Microsoft.eShopOnContainers.BuildingBlocks.EventBus.Events;
using System;
using System.Threading.Tasks;
namespace Ordering.API.Application.IntegrationEvents
{
public interface IOrderingIntegrationEventService
{
Task PublishEventsThroughEventBusAsync();
Task PublishEventsThroughEventBusAsync(Guid transactionId);
Task AddAndSaveEventAsync(IntegrationEvent evt);
}
}

+ 4
- 4
src/Services/Ordering/Ordering.API/Application/IntegrationEvents/OrderingIntegrationEventService.cs View File

@ -39,11 +39,11 @@ namespace Ordering.API.Application.IntegrationEvents
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
}
public async Task PublishEventsThroughEventBusAsync()
public async Task PublishEventsThroughEventBusAsync(Guid transactionId)
{
var pendindLogEvents = await _eventLogService.RetrieveEventLogsPendingToPublishAsync();
var pendingLogEvents = await _eventLogService.RetrieveEventLogsPendingToPublishAsync(transactionId);
foreach (var logEvt in pendindLogEvents)
foreach (var logEvt in pendingLogEvents)
{
_logger.LogInformation("----- Publishing integration event: {IntegrationEventId} from {AppName} - ({@IntegrationEvent})", logEvt.EventId, Program.AppName, logEvt.IntegrationEvent);
@ -66,7 +66,7 @@ namespace Ordering.API.Application.IntegrationEvents
{
_logger.LogInformation("----- Enqueuing integration event {IntegrationEventId} to repository ({@IntegrationEvent})", evt.Id, evt);
await _eventLogService.SaveEventAsync(evt, _orderingContext.GetCurrentTransaction.GetDbTransaction());
await _eventLogService.SaveEventAsync(evt, _orderingContext.GetCurrentTransaction());
}
}
}

+ 16
- 6
src/Services/Ordering/Ordering.API/Dockerfile View File

@ -4,19 +4,29 @@ EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /src
COPY scripts scripts/
COPY src/ApiGateways/*/*.csproj /src/csproj-files/
COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/
COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . .
WORKDIR /src/src/Services/Ordering/Ordering.API
RUN dotnet restore -nowarn:msb3202,nu1503
RUN dotnet build --no-restore -c Release -o /app
FROM build as functionaltest
WORKDIR /src/src/Services/Ordering/Ordering.FunctionalTests
RUN dotnet publish -c Release -o /app
FROM build as unittest
WORKDIR /src/src/Services/Ordering/Ordering.UnitTests
FROM build as functionaltest
WORKDIR /src/src/Services/Ordering/Ordering.FunctionalTests
FROM build AS publish
RUN dotnet publish --no-restore -c Release -o /app
FROM base AS final
WORKDIR /app


+ 50
- 0
src/Services/Ordering/Ordering.API/Infrastructure/IntegrationEventMigrations/20190507185219_AddTransactionId.Designer.cs View File

@ -0,0 +1,50 @@
// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF;
namespace Ordering.API.Infrastructure.IntegrationEventMigrations
{
[DbContext(typeof(IntegrationEventLogContext))]
[Migration("20190507185219_AddTransactionId")]
partial class AddTransactionId
{
protected override void BuildTargetModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "2.2.3-servicing-35854")
.HasAnnotation("Relational:MaxIdentifierLength", 128)
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
modelBuilder.Entity("Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF.IntegrationEventLogEntry", b =>
{
b.Property<Guid>("EventId")
.ValueGeneratedOnAdd();
b.Property<string>("Content")
.IsRequired();
b.Property<DateTime>("CreationTime");
b.Property<string>("EventTypeName")
.IsRequired();
b.Property<int>("State");
b.Property<int>("TimesSent");
b.Property<string>("TransactionId");
b.HasKey("EventId");
b.ToTable("IntegrationEventLog");
});
#pragma warning restore 612, 618
}
}
}

+ 22
- 0
src/Services/Ordering/Ordering.API/Infrastructure/IntegrationEventMigrations/20190507185219_AddTransactionId.cs View File

@ -0,0 +1,22 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace Ordering.API.Infrastructure.IntegrationEventMigrations
{
public partial class AddTransactionId : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "TransactionId",
table: "IntegrationEventLog",
nullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "TransactionId",
table: "IntegrationEventLog");
}
}
}

+ 18
- 0
src/Services/Ordering/Ordering.API/Infrastructure/IntegrationEventMigrations/IntegrationEventLogContextDesignTimeFactory.cs View File

@ -0,0 +1,18 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Design;
using Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF;
namespace Catalog.API.Infrastructure.IntegrationEventMigrations
{
public class IntegrationEventLogContextDesignTimeFactory : IDesignTimeDbContextFactory<IntegrationEventLogContext>
{
public IntegrationEventLogContext CreateDbContext(string[] args)
{
var optionsBuilder = new DbContextOptionsBuilder<IntegrationEventLogContext>();
optionsBuilder.UseSqlServer(".", options => options.MigrationsAssembly(GetType().Assembly.GetName().Name));
return new IntegrationEventLogContext(optionsBuilder.Options);
}
}
}

+ 9
- 3
src/Services/Ordering/Ordering.API/Infrastructure/IntegrationEventMigrations/IntegrationEventLogContextModelSnapshot.cs View File

@ -1,8 +1,9 @@
using System;
// <auto-generated />
using System;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Metadata;
using Microsoft.EntityFrameworkCore.Migrations;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion;
using Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF;
namespace Ordering.API.Infrastructure.IntegrationEventMigrations
@ -12,8 +13,10 @@ namespace Ordering.API.Infrastructure.IntegrationEventMigrations
{
protected override void BuildModel(ModelBuilder modelBuilder)
{
#pragma warning disable 612, 618
modelBuilder
.HasAnnotation("ProductVersion", "1.1.1")
.HasAnnotation("ProductVersion", "2.2.3-servicing-35854")
.HasAnnotation("Relational:MaxIdentifierLength", 128)
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn);
modelBuilder.Entity("Microsoft.eShopOnContainers.BuildingBlocks.IntegrationEventLogEF.IntegrationEventLogEntry", b =>
@ -33,10 +36,13 @@ namespace Ordering.API.Infrastructure.IntegrationEventMigrations
b.Property<int>("TimesSent");
b.Property<string>("TransactionId");
b.HasKey("EventId");
b.ToTable("IntegrationEventLog");
});
#pragma warning restore 612, 618
}
}
}

+ 13
- 3
src/Services/Ordering/Ordering.BackgroundTasks/Dockerfile View File

@ -4,13 +4,23 @@ EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /src
COPY scripts scripts/
COPY src/ApiGateways/*/*.csproj /src/csproj-files/
COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/
COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . .
WORKDIR /src/src/Services/Ordering/Ordering.BackgroundTasks
RUN dotnet restore -nowarn:msb3202,nu1503
RUN dotnet build --no-restore -c Release -o /app
RUN dotnet publish -c Release -o /app
FROM build AS publish
RUN dotnet publish --no-restore -c Release -o /app
FROM base AS final
WORKDIR /app


+ 2
- 2
src/Services/Ordering/Ordering.Infrastructure/OrderingContext.cs View File

@ -29,7 +29,7 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.Infrastructure
private OrderingContext(DbContextOptions<OrderingContext> options) : base(options) { }
public IDbContextTransaction GetCurrentTransaction => _currentTransaction;
public IDbContextTransaction GetCurrentTransaction() => _currentTransaction;
public bool HasActiveTransaction => _currentTransaction != null;
@ -64,7 +64,7 @@ namespace Microsoft.eShopOnContainers.Services.Ordering.Infrastructure
// After executing this line all the changes (from the Command Handler and Domain Event Handlers)
// performed through the DbContext will be committed
var result = await base.SaveChangesAsync();
var result = await base.SaveChangesAsync(cancellationToken);
return true;
}


+ 13
- 3
src/Services/Ordering/Ordering.SignalrHub/Dockerfile View File

@ -4,13 +4,23 @@ EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /src
COPY scripts scripts/
COPY src/ApiGateways/*/*.csproj /src/csproj-files/
COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/
COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . .
WORKDIR /src/src/Services/Ordering/Ordering.SignalrHub
RUN dotnet restore -nowarn:msb3202,nu1503
RUN dotnet build --no-restore Ordering.SignalrHub.csproj -c Release -o /app
RUN dotnet publish -c Release -o /app
FROM build AS publish
RUN dotnet publish --no-restore Ordering.SignalrHub.csproj -c Release -o /app
FROM base AS final
WORKDIR /app


+ 13
- 3
src/Services/Payment/Payment.API/Dockerfile View File

@ -4,13 +4,23 @@ EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /src
COPY scripts scripts/
COPY src/ApiGateways/*/*.csproj /src/csproj-files/
COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/
COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . .
WORKDIR /src/src/Services/Payment/Payment.API
RUN dotnet restore -nowarn:msb3202,nu1503
RUN dotnet build --no-restore -c Release -o /app
RUN dotnet publish -c Release -o /app
FROM build AS publish
RUN dotnet publish --no-restore -c Release -o /app
FROM base AS final
WORKDIR /app


+ 2
- 0
src/Services/Payment/Payment.API/IntegrationEvents/EventHandling/OrderStatusChangedToStockConfirmedIntegrationEventHandler.cs View File

@ -23,6 +23,8 @@
_eventBus = eventBus;
_settings = settings.Value;
_logger = logger ?? throw new System.ArgumentNullException(nameof(logger));
_logger.LogTrace("PaymentSettings: {@PaymentSettings}", _settings);
}
public async Task Handle(OrderStatusChangedToStockConfirmedIntegrationEvent @event)


+ 13
- 4
src/Services/Webhooks/Webhooks.API/Dockerfile View File

@ -4,14 +4,23 @@ EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /src
COPY ["src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj", "src/Services/Webhooks/Webhooks.API/"]
RUN dotnet restore "src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj"
COPY scripts scripts/
COPY src/ApiGateways/*/*.csproj /src/csproj-files/
COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/
COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . .
WORKDIR "/src/src/Services/Webhooks/Webhooks.API"
RUN dotnet build "Webhooks.API.csproj" -c Release -o /app
RUN dotnet publish -c Release -o /app
FROM build AS publish
RUN dotnet publish "Webhooks.API.csproj" -c Release -o /app
FROM base AS final
WORKDIR /app


+ 11
- 1
src/Web/WebMVC/Controllers/AccountController.cs View File

@ -6,19 +6,29 @@ using System.Threading.Tasks;
using Microsoft.AspNetCore.Authentication;
using Microsoft.AspNetCore.Authentication.OpenIdConnect;
using Microsoft.AspNetCore.Authentication.Cookies;
using Microsoft.Extensions.Logging;
using System;
namespace Microsoft.eShopOnContainers.WebMVC.Controllers
{
[Authorize]
public class AccountController : Controller
{
private readonly ILogger<AccountController> _logger;
public AccountController(ILogger<AccountController> logger)
{
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
}
[Authorize]
public async Task<IActionResult> SignIn(string returnUrl)
{
var user = User as ClaimsPrincipal;
var token = await HttpContext.GetTokenAsync("access_token");
_logger.LogInformation("----- User {@User} authenticated into {AppName}", user, Program.AppName);
if (token != null)
{
ViewData["access_token"] = token;


+ 13
- 2
src/Web/WebMVC/Dockerfile View File

@ -4,12 +4,23 @@ EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /src
COPY scripts scripts/
COPY src/ApiGateways/*/*.csproj /src/csproj-files/
COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/
COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . .
WORKDIR /src/src/Web/WebMVC
RUN dotnet restore -nowarn:msb3202,nu1503
RUN dotnet publish -c Release -o /app
FROM build AS publish
RUN dotnet publish --no-restore -c Release -o /app
FROM base AS final
WORKDIR /app


+ 2
- 1
src/Web/WebMVC/Startup.cs View File

@ -238,6 +238,7 @@ namespace Microsoft.eShopOnContainers.WebMVC
var useLoadTest = configuration.GetValue<bool>("UseLoadTest");
var identityUrl = configuration.GetValue<string>("IdentityUrl");
var callBackUrl = configuration.GetValue<string>("CallBackUrl");
var sessionCookieLifetime = configuration.GetValue("SessionCookieLifetimeMinutes", 60);
// Add Authentication services
@ -246,7 +247,7 @@ namespace Microsoft.eShopOnContainers.WebMVC
options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
})
.AddCookie(setup=>setup.ExpireTimeSpan = TimeSpan.FromHours(2))
.AddCookie(setup=>setup.ExpireTimeSpan = TimeSpan.FromMinutes(sessionCookieLifetime))
.AddOpenIdConnect(options =>
{
options.SignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;


+ 4
- 2
src/Web/WebMVC/Views/Campaigns/Details.cshtml View File

@ -1,6 +1,8 @@
@model CampaignItem
@{
ViewData["Title"] = "Campaign details";
@model CampaignItem
var headerList= new List<Header>() {
new Header() { Controller = "Catalog", Text = "Back to catalog" },
new Header() { Controller = "Campaigns", Text = "Back to Campaigns" } };
@ -18,7 +20,7 @@
<img class="card-img-top" src="@Model.PictureUri" alt="Card image cap">
<div class="card-body">
<h4 class="card-title">@Model.Name</h4>
<p class="card-text">@Model.Description</p>
<p class="card-text">@Model.Description</p>
</div>
<div class="card-footer">
<small class="text-muted">


+ 24
- 22
src/Web/WebMVC/Views/Campaigns/Index.cshtml View File

@ -1,6 +1,8 @@
@model WebMVC.ViewModels.CampaignViewModel
@{
ViewData["Title"] = "Campaigns";
@model WebMVC.ViewModels.CampaignViewModel
var headerList= new List<Header>() {
new Header() { Controller = "Catalog", Text = "Back to catalog" } };
}
@ -11,23 +13,23 @@
</div>
</section>
<partial name="_Header" model="headerList"/>
<partial name="_Header" model="headerList" />
<div class="container">
<br />
<div class="row">
@if (!ViewData.ModelState.IsValid)
{
<div class="alert alert-warning">
@Html.ValidationSummary(false)
</div>
}
<div class="alert alert-warning">
@Html.ValidationSummary(false)
</div>
}
<div class="col-md-12">
<div class="esh-campaigns-items" style="font-weight: 300;">
UPDATE USER LOCATION
</div>
</div>
<br />
<form class="form-inline" asp-action="CreateNewUserLocation" method="post">
<label class="sr-only" for="longitudeInput">Name</label>
@ -44,33 +46,33 @@
<span class="input-group-text" id="inputGroup-sizing-default">Lon</span>
</div>
<input type="text" class="form-control mb-2 mr-sm-2 mb-sm-0" id="longitudeInput" asp-for="Lon" placeholder="Longitude">
</div>
</div>
<div class="input-group mb-2 mr-sm-2 mb-sm-0 col-md-2">
<input type="submit" value="Update" class="btn esh-campaigns-form-button" />
</div>
</form>
</div>
</div>
</div>
</div>
<br />
@if (Model != null && Model.CampaignItems !=null && Model.CampaignItems.Any())
@if (Model != null && Model.CampaignItems !=null && Model.CampaignItems.Any())
{
<div class="card-group esh-campaigns-items row">
@foreach (var catalogItem in Model.CampaignItems)
<div class="card-group esh-campaigns-items row">
@foreach (var catalogItem in Model.CampaignItems)
{
<div class="esh-campaigns-item col-md-4">
<partial name="_campaign" model="catalogItem"/>
</div>
<div class="esh-campaigns-item col-md-4">
<partial name="_campaign" model="catalogItem" />
</div>
}
</div>
</div>
<partial name="_pagination" for="PaginationInfo" />
<partial name="_pagination" for="PaginationInfo" />
}
else
{
<div class="esh-campaigns-items row">
THERE ARE NO CAMPAIGNS
</div>
<div class="esh-campaigns-items row">
THERE ARE NO CAMPAIGNS
</div>
}
</div>


+ 17
- 16
src/Web/WebMVC/Views/Catalog/Index.cshtml View File

@ -1,6 +1,7 @@
@{
@model Microsoft.eShopOnContainers.WebMVC.ViewModels.CatalogViewModels.IndexViewModel
@{
ViewData["Title"] = "Catalog";
@model Microsoft.eShopOnContainers.WebMVC.ViewModels.CatalogViewModels.IndexViewModel
}
<section class="esh-catalog-hero">
<div class="container">
@ -27,31 +28,31 @@
<br />
@if(ViewBag.BasketInoperativeMsg != null)
{
<div class="alert alert-warning" role="alert">
&nbsp;@ViewBag.BasketInoperativeMsg
</div>
<div class="alert alert-warning" role="alert">
&nbsp;@ViewBag.BasketInoperativeMsg
</div>
}
</div>
@if (Model.CatalogItems.Count() > 0)
{
<partial name="_pagination" for="PaginationInfo" />
<partial name="_pagination" for="PaginationInfo" />
<div class="esh-catalog-items row">
@foreach (var catalogItem in Model.CatalogItems)
<div class="esh-catalog-items row">
@foreach (var catalogItem in Model.CatalogItems)
{
<div class="esh-catalog-item col-md-4">
<partial name="_product" model="catalogItem"/>
</div>
}
<div class="esh-catalog-item col-md-4">
<partial name="_product" model="catalogItem" />
</div>
}
</div>
<partial name="_pagination" for="PaginationInfo"/>
<partial name="_pagination" for="PaginationInfo" />
}
else
{
<div class="esh-catalog-items row">
THERE ARE NO RESULTS THAT MATCH YOUR SEARCH
</div>
<div class="esh-catalog-items row">
THERE ARE NO RESULTS THAT MATCH YOUR SEARCH
</div>
}
</div>

+ 2
- 2
src/Web/WebMVC/Views/Shared/_Layout.cshtml View File

@ -74,11 +74,11 @@
<script src="~/js/site.js" asp-append-version="true"></script>
</environment>
<environment names="Staging,Production">
<script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-2.2.0.min.js"
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"
asp-fallback-src="~/lib/jquery/jquery.min.js"
asp-fallback-test="window.jQuery">
</script>
<script src="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.7/bootstrap.min.js"
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.bundle.min.js"
asp-fallback-src="~/lib/bootstrap/dist/js/bootstrap.min.js"
asp-fallback-test="window.jQuery && window.jQuery.fn && window.jQuery.fn.modal">
</script>


+ 3
- 2
src/Web/WebMVC/appsettings.json View File

@ -27,5 +27,6 @@
"InstrumentationKey": ""
},
"HttpClientRetryCount": 8,
"HttpClientExceptionsAllowedBeforeBreaking": 7
}
"HttpClientExceptionsAllowedBeforeBreaking": 7,
"SessionCookieLifetimeMinutes": 60
}

+ 1
- 1
src/Web/WebMVC/libman.json View File

@ -3,7 +3,7 @@
"defaultProvider": "cdnjs",
"libraries": [
{
"library": "jquery@3.3.1",
"library": "jquery@3.4.1",
"destination": "wwwroot/lib/jquery/"
},
{


+ 16
- 6
src/Web/WebSPA/Dockerfile View File

@ -3,23 +3,33 @@ FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base
WORKDIR /app
EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS dotnet-build
WORKDIR /src
FROM ${NODE_IMAGE} as node-build
WORKDIR /web
COPY src/Web/WebSPA .
RUN npm install
RUN npm run build:prod
FROM dotnet-build as publish
WORKDIR /src/src/Web/WebSPA/wwwroot
COPY --from=node-build /web/wwwroot .
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /src
COPY scripts scripts/
COPY src/ApiGateways/*/*.csproj /src/csproj-files/
COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/
COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . .
COPY --from=node-build /web/wwwroot /src/src/Web/WebSPA/wwwroot/
WORKDIR /src/src/Web/WebSPA
RUN dotnet publish -c Release -o /app
FROM build AS publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app .


+ 9
- 9
src/Web/WebSPA/package-lock.json View File

@ -2371,7 +2371,7 @@
"arr-flatten": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
"integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE="
"integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
},
"arr-union": {
"version": "3.1.0",
@ -2835,7 +2835,7 @@
"bn.js": {
"version": "4.11.8",
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
"integrity": "sha1-LN4J617jQfSEdGuwMJsyU7GxRC8=",
"integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==",
"dev": true
},
"body-parser": {
@ -3344,7 +3344,7 @@
"cipher-base": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz",
"integrity": "sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94=",
"integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
"dev": true,
"requires": {
"inherits": "^2.0.1",
@ -5864,7 +5864,7 @@
"globals": {
"version": "9.18.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
"integrity": "sha1-qjiWs+abSH8X4x7SFD1pqOMMLYo=",
"integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
"dev": true
},
"globby": {
@ -6730,7 +6730,7 @@
"is-plain-object": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
"integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=",
"integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
"requires": {
"isobject": "^3.0.1"
}
@ -6941,9 +6941,9 @@
"dev": true
},
"jquery": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.3.1.tgz",
"integrity": "sha512-Ubldcmxp5np52/ENotGxlLe6aGMvmF4R8S6tZjsP6Knsaxd/xp3Zrh50cG93lR6nPXyUFwzN3ZSOQI0wRJNdGg=="
"version": "3.4.1",
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.4.1.tgz",
"integrity": "sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw=="
},
"js-base64": {
"version": "2.5.1",
@ -7786,7 +7786,7 @@
"minimatch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"requires": {
"brace-expansion": "^1.1.7"
}


+ 1
- 1
src/Web/WebSPA/package.json View File

@ -44,7 +44,7 @@
"file-loader": "2.0.0",
"font-awesome": "4.7.0",
"isomorphic-fetch": "2.2.1",
"jquery": "^3.3.1",
"jquery": "3.4.1",
"ngx-toastr": "^9.0.2",
"normalize.css": "8.0.0",
"popper.js": "^1.14.4",


+ 13
- 3
src/Web/WebStatus/Dockerfile View File

@ -4,13 +4,23 @@ EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /src
COPY scripts scripts/
COPY src/ApiGateways/*/*.csproj /src/csproj-files/
COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/
COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . .
WORKDIR /src/src/Web/WebStatus
RUN dotnet restore -nowarn:msb3202,nu1503
RUN dotnet build --no-restore -c Release -o /app
RUN dotnet publish -c Release -o /app
FROM build AS publish
RUN dotnet publish --no-restore -c Release -o /app
FROM base AS final
WORKDIR /app


+ 37
- 0
src/Web/WebStatus/Views/Shared/Error.cshtml View File

@ -0,0 +1,37 @@

@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Error</title>
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
<environment names="Development">
<link rel="stylesheet" href="~/css/site.min.css" type="text/css" />
</environment>
<environment names="Staging,Production">
<link rel="stylesheet" href="~/css/site.min.css" asp-append-version="true" />
</environment>
</head>
<body>
<div class="container">
<h1 class="text-danger">Error.</h1>
<h2 class="text-danger">An error occurred while processing your request.</h2>
<h3>Development Mode</h3>
<p>
Swapping to <strong>Development</strong> environment will display more detailed information about the error that occurred.
</p>
<p>
<strong>Development environment should not be enabled in deployed applications</strong>, as it can result in sensitive information from exceptions being displayed to end users. For local debugging, development environment can be enabled by setting the <strong>ASPNETCORE_ENVIRONMENT</strong> environment variable to <strong>Development</strong>, and restarting the application.
</p>
</div>
</body>
</html>

+ 0
- 6
src/Web/WebStatus/WebStatus.csproj View File

@ -4,12 +4,6 @@
<AssetTargetFallback>$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;</AssetTargetFallback>
<DockerComposeProjectPath>..\..\..\docker-compose.dcproj</DockerComposeProjectPath>
</PropertyGroup>
<ItemGroup>
<Compile Remove="Views\**" />
<Content Remove="Views\**" />
<EmbeddedResource Remove="Views\**" />
<None Remove="Views\**" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="AspNetCore.HealthChecks.UI" Version="2.2.22" />
<PackageReference Include="AspNetCore.HealthChecks.UI.Client" Version="2.2.3" />


+ 79
- 9
src/Web/WebStatus/appsettings.json View File

@ -1,5 +1,75 @@
{
"HealthChecks-UI": {
"HealthChecks": [
{
"Name": "Ordering HTTP Check",
"Uri": "http://localhost:5102/hc"
},
{
"Name": "Ordering HTTP Background Check",
"Uri": "http://localhost:5111/hc"
},
{
"Name": "Basket HTTP Check",
"Uri": "http://localhost:5103/hc"
},
{
"Name": "Catalog HTTP Check",
"Uri": "http://localhost:5101/hc"
},
{
"Name": "Identity HTTP Check",
"Uri": "http://localhost:5105/hc"
},
{
"Name": "Marketing HTTP Check",
"Uri": "http://localhost:5110/hc"
},
{
"Name": "Locations HTTP Check",
"Uri": "http://localhost:5109/hc"
},
{
"Name": "Payments HTTP Check",
"Uri": "http://localhost:5108/hc"
},
{
"Name": "WebMVC HTTP Check",
"Uri": "http://localhost:5100/hc"
},
{
"Name": "WebSPA HTTP Check",
"Uri": "http://localhost:5104/hc"
},
{
"Name": "SignalR HTTP Check",
"Uri": "http://localhost:5112/hc"
},
{
"Name": "Mobile Shopping API GW HTTP Check",
"Uri": "http://localhost:5200/hc"
},
{
"Name": "Mobile Marketing API GW HTTP Check",
"Uri": "http://localhost:5201/hc"
},
{
"Name": "Web Shopping API GW HTTP Check",
"Uri": "http://localhost:5202/hc"
},
{
"Name": "Web Marketing API GW HTTP Check",
"Uri": "http://localhost:5203/hc"
},
{
"Name": "Mobile Shopping Aggregator HTTP Check",
"Uri": "http://localhost:5120/hc"
},
{
"Name": "Web Shopping Aggregator HTTP Check",
"Uri": "http://localhost:5121/hc"
}
],
"EvaluationTimeOnSeconds": 10,
"MinimumSecondsBetweenFailureNotifications": 60
},
@ -14,13 +84,13 @@
"System": "Warning"
}
}
},
"Webhooks": [
{
"Name": "",
"Uri": "",
"Payload": "",
"RestoredPayload": ""
}
]
},
"Webhooks": [
{
"Name": "",
"Uri": "",
"Payload": "",
"RestoredPayload": ""
}
]
}

+ 1
- 1
src/Web/WebStatus/libman.json View File

@ -3,7 +3,7 @@
"defaultProvider": "cdnjs",
"libraries": [
{
"library": "jquery@3.3.1",
"library": "jquery@3.4.1",
"destination": "wwwroot/lib/jquery/"
},
{


+ 14
- 5
src/Web/WebhookClient/Dockerfile View File

@ -5,14 +5,23 @@ EXPOSE 443
FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /src
COPY ["src/Web/WebhookClient/WebhookClient.csproj", "src/Web/WebhookClient/"]
RUN dotnet restore "src/Web/WebhookClient/WebhookClient.csproj"
COPY scripts scripts/
COPY src/ApiGateways/*/*.csproj /src/csproj-files/
COPY src/ApiGateways/*/*/*.csproj /src/csproj-files/
COPY src/BuildingBlocks/*/*/*.csproj /src/csproj-files/
COPY src/Services/*/*/*.csproj /src/csproj-files/
COPY src/Web/*/*.csproj /src/csproj-files/
ARG RUN=pwd
RUN ${RUN}
COPY . .
WORKDIR "/src/src/Web/WebhookClient"
RUN dotnet build "WebhookClient.csproj" -c Release -o /app
WORKDIR /src/src/Web/WebhookClient
RUN dotnet publish -c Release -o /app
FROM build AS publish
RUN dotnet publish "WebhookClient.csproj" -c Release -o /app
FROM base AS final
WORKDIR /app


+ 2
- 2
src/Web/WebhookClient/Pages/Shared/_Layout.cshtml View File

@ -59,11 +59,11 @@
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.js"></script>
</environment>
<environment exclude="Development">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"
asp-fallback-src="~/lib/jquery/dist/jquery.min.js"
asp-fallback-test="window.jQuery"
crossorigin="anonymous"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=">
integrity="sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw==">
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/js/bootstrap.bundle.min.js"
asp-fallback-src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"


+ 415
- 181
src/Web/WebhookClient/wwwroot/lib/jquery/dist/jquery.js View File

@ -1,5 +1,5 @@
/*!
* jQuery JavaScript Library v3.3.1
* jQuery JavaScript Library v3.4.1
* https://jquery.com/
*
* Includes Sizzle.js
@ -9,7 +9,7 @@
* Released under the MIT license
* https://jquery.org/license
*
* Date: 2018-01-20T17:24Z
* Date: 2019-05-01T21:04Z
*/
( function( global, factory ) {
@ -91,20 +91,33 @@ var isWindow = function isWindow( obj ) {
var preservedScriptAttributes = {
type: true,
src: true,
nonce: true,
noModule: true
};
function DOMEval( code, doc, node ) {
function DOMEval( code, node, doc ) {
doc = doc || document;
var i,
var i, val,
script = doc.createElement( "script" );
script.text = code;
if ( node ) {
for ( i in preservedScriptAttributes ) {
if ( node[ i ] ) {
script[ i ] = node[ i ];
// Support: Firefox 64+, Edge 18+
// Some browsers don't support the "nonce" property on scripts.
// On the other hand, just using `getAttribute` is not enough as
// the `nonce` attribute is reset to an empty string whenever it
// becomes browsing-context connected.
// See https://github.com/whatwg/html/issues/2369
// See https://html.spec.whatwg.org/#nonce-attributes
// The `node.getAttribute` check was added for the sake of
// `jQuery.globalEval` so that it can fake a nonce-containing node
// via an object.
val = node[ i ] || node.getAttribute && node.getAttribute( i );
if ( val ) {
script.setAttribute( i, val );
}
}
}
@ -129,7 +142,7 @@ function toType( obj ) {
var
version = "3.3.1",
version = "3.4.1",
// Define a local copy of jQuery
jQuery = function( selector, context ) {
@ -258,25 +271,28 @@ jQuery.extend = jQuery.fn.extend = function() {
// Extend the base object
for ( name in options ) {
src = target[ name ];
copy = options[ name ];
// Prevent Object.prototype pollution
// Prevent never-ending loop
if ( target === copy ) {
if ( name === "__proto__" || target === copy ) {
continue;
}
// Recurse if we're merging plain objects or arrays
if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
( copyIsArray = Array.isArray( copy ) ) ) ) {
src = target[ name ];
if ( copyIsArray ) {
copyIsArray = false;
clone = src && Array.isArray( src ) ? src : [];
// Ensure proper type for the source value
if ( copyIsArray && !Array.isArray( src ) ) {
clone = [];
} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {
clone = {};
} else {
clone = src && jQuery.isPlainObject( src ) ? src : {};
clone = src;
}
copyIsArray = false;
// Never move original objects, clone them
target[ name ] = jQuery.extend( deep, clone, copy );
@ -329,9 +345,6 @@ jQuery.extend( {
},
isEmptyObject: function( obj ) {
/* eslint-disable no-unused-vars */
// See https://github.com/eslint/eslint/issues/6125
var name;
for ( name in obj ) {
@ -341,8 +354,8 @@ jQuery.extend( {
},
// Evaluates a script in a global context
globalEval: function( code ) {
DOMEval( code );
globalEval: function( code, options ) {
DOMEval( code, { nonce: options && options.nonce } );
},
each: function( obj, callback ) {
@ -498,14 +511,14 @@ function isArrayLike( obj ) {
}
var Sizzle =
/*!
* Sizzle CSS Selector Engine v2.3.3
* Sizzle CSS Selector Engine v2.3.4
* https://sizzlejs.com/
*
* Copyright jQuery Foundation and other contributors
* Copyright JS Foundation and other contributors
* Released under the MIT license
* http://jquery.org/license
* https://js.foundation/
*
* Date: 2016-08-08
* Date: 2019-04-08
*/
(function( window ) {
@ -539,6 +552,7 @@ var i,
classCache = createCache(),
tokenCache = createCache(),
compilerCache = createCache(),
nonnativeSelectorCache = createCache(),
sortOrder = function( a, b ) {
if ( a === b ) {
hasDuplicate = true;
@ -600,8 +614,7 @@ var i,
rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ),
rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ),
rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ),
rdescend = new RegExp( whitespace + "|>" ),
rpseudo = new RegExp( pseudos ),
ridentifier = new RegExp( "^" + identifier + "$" ),
@ -622,6 +635,7 @@ var i,
whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" )
},
rhtml = /HTML$/i,
rinputs = /^(?:input|select|textarea|button)$/i,
rheader = /^h\d$/i,
@ -676,9 +690,9 @@ var i,
setDocument();
},
disabledAncestor = addCombinator(
inDisabledFieldset = addCombinator(
function( elem ) {
return elem.disabled === true && ("form" in elem || "label" in elem);
return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset";
},
{ dir: "parentNode", next: "legend" }
);
@ -791,18 +805,22 @@ function Sizzle( selector, context, results, seed ) {
// Take advantage of querySelectorAll
if ( support.qsa &&
!compilerCache[ selector + " " ] &&
(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {
if ( nodeType !== 1 ) {
newContext = context;
newSelector = selector;
!nonnativeSelectorCache[ selector + " " ] &&
(!rbuggyQSA || !rbuggyQSA.test( selector )) &&
// qSA looks outside Element context, which is not what we want
// Thanks to Andrew Dupont for this workaround technique
// Support: IE <=8
// Support: IE 8 only
// Exclude object elements
} else if ( context.nodeName.toLowerCase() !== "object" ) {
(nodeType !== 1 || context.nodeName.toLowerCase() !== "object") ) {
newSelector = selector;
newContext = context;
// qSA considers elements outside a scoping root when evaluating child or
// descendant combinators, which is not what we want.
// In such cases, we work around the behavior by prefixing every selector in the
// list with an ID selector referencing the scope context.
// Thanks to Andrew Dupont for this technique.
if ( nodeType === 1 && rdescend.test( selector ) ) {
// Capture the context ID, setting it first if necessary
if ( (nid = context.getAttribute( "id" )) ) {
@ -824,17 +842,16 @@ function Sizzle( selector, context, results, seed ) {
context;
}
if ( newSelector ) {
try {
push.apply( results,
newContext.querySelectorAll( newSelector )
);
return results;
} catch ( qsaError ) {
} finally {
if ( nid === expando ) {
context.removeAttribute( "id" );
}
try {
push.apply( results,
newContext.querySelectorAll( newSelector )
);
return results;
} catch ( qsaError ) {
nonnativeSelectorCache( selector, true );
} finally {
if ( nid === expando ) {
context.removeAttribute( "id" );
}
}
}
@ -998,7 +1015,7 @@ function createDisabledPseudo( disabled ) {
// Where there is no isDisabled, check manually
/* jshint -W018 */
elem.isDisabled !== !disabled &&
disabledAncestor( elem ) === disabled;
inDisabledFieldset( elem ) === disabled;
}
return elem.disabled === disabled;
@ -1055,10 +1072,13 @@ support = Sizzle.support = {};
* @returns {Boolean} True iff elem is a non-HTML XML node
*/
isXML = Sizzle.isXML = function( elem ) {
// documentElement is verified for cases where it doesn't yet exist
// (such as loading iframes in IE - #4833)
var documentElement = elem && (elem.ownerDocument || elem).documentElement;
return documentElement ? documentElement.nodeName !== "HTML" : false;
var namespace = elem.namespaceURI,
docElem = (elem.ownerDocument || elem).documentElement;
// Support: IE <=8
// Assume HTML when documentElement doesn't yet exist, such as inside loading iframes
// https://bugs.jquery.com/ticket/4833
return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" );
};
/**
@ -1480,11 +1500,8 @@ Sizzle.matchesSelector = function( elem, expr ) {
setDocument( elem );
}
// Make sure that attribute selectors are quoted
expr = expr.replace( rattributeQuotes, "='$1']" );
if ( support.matchesSelector && documentIsHTML &&
!compilerCache[ expr + " " ] &&
!nonnativeSelectorCache[ expr + " " ] &&
( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&
( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {
@ -1498,7 +1515,9 @@ Sizzle.matchesSelector = function( elem, expr ) {
elem.document && elem.document.nodeType !== 11 ) {
return ret;
}
} catch (e) {}
} catch (e) {
nonnativeSelectorCache( expr, true );
}
}
return Sizzle( expr, document, null, [ elem ] ).length > 0;
@ -1957,7 +1976,7 @@ Expr = Sizzle.selectors = {
"contains": markFunction(function( text ) {
text = text.replace( runescape, funescape );
return function( elem ) {
return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;
return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1;
};
}),
@ -2096,7 +2115,11 @@ Expr = Sizzle.selectors = {
}),
"lt": createPositionalPseudo(function( matchIndexes, length, argument ) {
var i = argument < 0 ? argument + length : argument;
var i = argument < 0 ?
argument + length :
argument > length ?
length :
argument;
for ( ; --i >= 0; ) {
matchIndexes.push( i );
}
@ -3146,18 +3169,18 @@ jQuery.each( {
return siblings( elem.firstChild );
},
contents: function( elem ) {
if ( nodeName( elem, "iframe" ) ) {
return elem.contentDocument;
}
if ( typeof elem.contentDocument !== "undefined" ) {
return elem.contentDocument;
}
// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
// Treat the template element as a regular one in browsers that
// don't support it.
if ( nodeName( elem, "template" ) ) {
elem = elem.content || elem;
}
// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
// Treat the template element as a regular one in browsers that
// don't support it.
if ( nodeName( elem, "template" ) ) {
elem = elem.content || elem;
}
return jQuery.merge( [], elem.childNodes );
return jQuery.merge( [], elem.childNodes );
}
}, function( name, fn ) {
jQuery.fn[ name ] = function( until, selector ) {
@ -4466,6 +4489,26 @@ var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" );
var cssExpand = [ "Top", "Right", "Bottom", "Left" ];
var documentElement = document.documentElement;
var isAttached = function( elem ) {
return jQuery.contains( elem.ownerDocument, elem );
},
composed = { composed: true };
// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only
// Check attachment across shadow DOM boundaries when possible (gh-3504)
// Support: iOS 10.0-10.2 only
// Early iOS 10 versions support `attachShadow` but not `getRootNode`,
// leading to errors. We need to check for `getRootNode`.
if ( documentElement.getRootNode ) {
isAttached = function( elem ) {
return jQuery.contains( elem.ownerDocument, elem ) ||
elem.getRootNode( composed ) === elem.ownerDocument;
};
}
var isHiddenWithinTree = function( elem, el ) {
// isHiddenWithinTree might be called from jQuery#filter function;
@ -4480,7 +4523,7 @@ var isHiddenWithinTree = function( elem, el ) {
// Support: Firefox <=43 - 45
// Disconnected elements can have computed display: none, so first confirm that elem is
// in the document.
jQuery.contains( elem.ownerDocument, elem ) &&
isAttached( elem ) &&
jQuery.css( elem, "display" ) === "none";
};
@ -4522,7 +4565,8 @@ function adjustCSS( elem, prop, valueParts, tween ) {
unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ),
// Starting value computation is required for potential unit mismatches
initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
initialInUnit = elem.nodeType &&
( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) &&
rcssNum.exec( jQuery.css( elem, prop ) );
if ( initialInUnit && initialInUnit[ 3 ] !== unit ) {
@ -4669,7 +4713,7 @@ jQuery.fn.extend( {
} );
var rcheckableType = ( /^(?:checkbox|radio)$/i );
var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i );
var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i );
var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i );
@ -4741,7 +4785,7 @@ function setGlobalEval( elems, refElements ) {
var rhtml = /<|&#?\w+;/;
function buildFragment( elems, context, scripts, selection, ignored ) {
var elem, tmp, tag, wrap, contains, j,
var elem, tmp, tag, wrap, attached, j,
fragment = context.createDocumentFragment(),
nodes = [],
i = 0,
@ -4805,13 +4849,13 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
continue;
}
contains = jQuery.contains( elem.ownerDocument, elem );
attached = isAttached( elem );
// Append to fragment
tmp = getAll( fragment.appendChild( elem ), "script" );
// Preserve script evaluation history
if ( contains ) {
if ( attached ) {
setGlobalEval( tmp );
}
@ -4854,8 +4898,6 @@ function buildFragment( elems, context, scripts, selection, ignored ) {
div.innerHTML = "<textarea>x</textarea>";
support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;
} )();
var documentElement = document.documentElement;
var
@ -4871,8 +4913,19 @@ function returnFalse() {
return false;
}
// Support: IE <=9 - 11+
// focus() and blur() are asynchronous, except when they are no-op.
// So expect focus to be synchronous when the element is already active,
// and blur to be synchronous when the element is not already active.
// (focus and blur are always synchronous in other supported browsers,
// this just defines when we can count on it).
function expectSync( elem, type ) {
return ( elem === safeActiveElement() ) === ( type === "focus" );
}
// Support: IE <=9 only
// See #13393 for more info
// Accessing document.activeElement can throw unexpectedly
// https://bugs.jquery.com/ticket/13393
function safeActiveElement() {
try {
return document.activeElement;
@ -5172,9 +5225,10 @@ jQuery.event = {
while ( ( handleObj = matched.handlers[ j++ ] ) &&
!event.isImmediatePropagationStopped() ) {
// Triggered event must either 1) have no namespace, or 2) have namespace(s)
// a subset or equal to those in the bound event (both can have no namespace).
if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {
// If the event is namespaced, then each handler is only invoked if it is
// specially universal or its namespaces are a superset of the event's.
if ( !event.rnamespace || handleObj.namespace === false ||
event.rnamespace.test( handleObj.namespace ) ) {
event.handleObj = handleObj;
event.data = handleObj.data;
@ -5298,39 +5352,51 @@ jQuery.event = {
// Prevent triggered image.load events from bubbling to window.load
noBubble: true
},
focus: {
click: {
// Fire native event if possible so blur/focus sequence is correct
trigger: function() {
if ( this !== safeActiveElement() && this.focus ) {
this.focus();
return false;
}
},
delegateType: "focusin"
},
blur: {
trigger: function() {
if ( this === safeActiveElement() && this.blur ) {
this.blur();
return false;
// Utilize native event to ensure correct state for checkable inputs
setup: function( data ) {
// For mutual compressibility with _default, replace `this` access with a local var.
// `|| data` is dead code meant only to preserve the variable through minification.
var el = this || data;
// Claim the first handler
if ( rcheckableType.test( el.type ) &&
el.click && nodeName( el, "input" ) ) {
// dataPriv.set( el, "click", ... )
leverageNative( el, "click", returnTrue );
}
// Return false to allow normal processing in the caller
return false;
},
delegateType: "focusout"
},
click: {
trigger: function( data ) {
// For checkbox, fire native event so checked state will be right
trigger: function() {
if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) {
this.click();
return false;
// For mutual compressibility with _default, replace `this` access with a local var.
// `|| data` is dead code meant only to preserve the variable through minification.
var el = this || data;
// Force setup before triggering a click
if ( rcheckableType.test( el.type ) &&
el.click && nodeName( el, "input" ) ) {
leverageNative( el, "click" );
}
// Return non-false to allow normal event-path propagation
return true;
},
// For cross-browser consistency, don't fire native .click() on links
// For cross-browser consistency, suppress native .click() on links
// Also prevent it if we're currently inside a leveraged native-event stack
_default: function( event ) {
return nodeName( event.target, "a" );
var target = event.target;
return rcheckableType.test( target.type ) &&
target.click && nodeName( target, "input" ) &&
dataPriv.get( target, "click" ) ||
nodeName( target, "a" );
}
},
@ -5347,6 +5413,93 @@ jQuery.event = {
}
};
// Ensure the presence of an event listener that handles manually-triggered
// synthetic events by interrupting progress until reinvoked in response to
// *native* events that it fires directly, ensuring that state changes have
// already occurred before other listeners are invoked.
function leverageNative( el, type, expectSync ) {
// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add
if ( !expectSync ) {
if ( dataPriv.get( el, type ) === undefined ) {
jQuery.event.add( el, type, returnTrue );
}
return;
}
// Register the controller as a special universal handler for all event namespaces
dataPriv.set( el, type, false );
jQuery.event.add( el, type, {
namespace: false,
handler: function( event ) {
var notAsync, result,
saved = dataPriv.get( this, type );
if ( ( event.isTrigger & 1 ) && this[ type ] ) {
// Interrupt processing of the outer synthetic .trigger()ed event
// Saved data should be false in such cases, but might be a leftover capture object
// from an async native handler (gh-4350)
if ( !saved.length ) {
// Store arguments for use when handling the inner native event
// There will always be at least one argument (an event object), so this array
// will not be confused with a leftover capture object.
saved = slice.call( arguments );
dataPriv.set( this, type, saved );
// Trigger the native event and capture its result
// Support: IE <=9 - 11+
// focus() and blur() are asynchronous
notAsync = expectSync( this, type );
this[ type ]();
result = dataPriv.get( this, type );
if ( saved !== result || notAsync ) {
dataPriv.set( this, type, false );
} else {
result = {};
}
if ( saved !== result ) {
// Cancel the outer synthetic event
event.stopImmediatePropagation();
event.preventDefault();
return result.value;
}
// If this is an inner synthetic event for an event with a bubbling surrogate
// (focus or blur), assume that the surrogate already propagated from triggering the
// native event and prevent that from happening again here.
// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the
// bubbling surrogate propagates *after* the non-bubbling base), but that seems
// less bad than duplication.
} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {
event.stopPropagation();
}
// If this is a native event triggered above, everything is now in order
// Fire an inner synthetic event with the original arguments
} else if ( saved.length ) {
// ...and capture the result
dataPriv.set( this, type, {
value: jQuery.event.trigger(
// Support: IE <=9 - 11+
// Extend with the prototype to reset the above stopImmediatePropagation()
jQuery.extend( saved[ 0 ], jQuery.Event.prototype ),
saved.slice( 1 ),
this
)
} );
// Abort handling of the native event
event.stopImmediatePropagation();
}
}
} );
}
jQuery.removeEvent = function( elem, type, handle ) {
// This "if" is needed for plain objects
@ -5459,6 +5612,7 @@ jQuery.each( {
shiftKey: true,
view: true,
"char": true,
code: true,
charCode: true,
key: true,
keyCode: true,
@ -5505,6 +5659,33 @@ jQuery.each( {
}
}, jQuery.event.addProp );
jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) {
jQuery.event.special[ type ] = {
// Utilize native event if possible so blur/focus sequence is correct
setup: function() {
// Claim the first handler
// dataPriv.set( this, "focus", ... )
// dataPriv.set( this, "blur", ... )
leverageNative( this, type, expectSync );
// Return false to allow normal processing in the caller
return false;
},
trigger: function() {
// Force setup before trigger
leverageNative( this, type );
// Return non-false to allow normal event-path propagation
return true;
},
delegateType: delegateType
};
} );
// Create mouseenter/leave events using mouseover/out and event-time checks
// so that event delegation works in jQuery.
// Do the same for pointerenter/pointerleave and pointerover/pointerout
@ -5755,11 +5936,13 @@ function domManip( collection, args, callback, ignored ) {
if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) {
// Optional AJAX dependency, but won't run scripts if not present
if ( jQuery._evalUrl ) {
jQuery._evalUrl( node.src );
if ( jQuery._evalUrl && !node.noModule ) {
jQuery._evalUrl( node.src, {
nonce: node.nonce || node.getAttribute( "nonce" )
} );
}
} else {
DOMEval( node.textContent.replace( rcleanScript, "" ), doc, node );
DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc );
}
}
}
@ -5781,7 +5964,7 @@ function remove( elem, selector, keepData ) {
}
if ( node.parentNode ) {
if ( keepData && jQuery.contains( node.ownerDocument, node ) ) {
if ( keepData && isAttached( node ) ) {
setGlobalEval( getAll( node, "script" ) );
}
node.parentNode.removeChild( node );
@ -5799,7 +5982,7 @@ jQuery.extend( {
clone: function( elem, dataAndEvents, deepDataAndEvents ) {
var i, l, srcElements, destElements,
clone = elem.cloneNode( true ),
inPage = jQuery.contains( elem.ownerDocument, elem );
inPage = isAttached( elem );
// Fix IE cloning issues
if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&
@ -6095,8 +6278,10 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" );
// Support: IE 9 only
// Detect overflow:scroll screwiness (gh-3699)
// Support: Chrome <=64
// Don't get tricked when zoom affects offsetWidth (gh-4029)
div.style.position = "absolute";
scrollboxSizeVal = div.offsetWidth === 36 || "absolute";
scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;
documentElement.removeChild( container );
@ -6167,7 +6352,7 @@ function curCSS( elem, name, computed ) {
if ( computed ) {
ret = computed.getPropertyValue( name ) || computed[ name ];
if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
if ( ret === "" && !isAttached( elem ) ) {
ret = jQuery.style( elem, name );
}
@ -6223,30 +6408,13 @@ function addGetHookIf( conditionFn, hookFn ) {
}
var
var cssPrefixes = [ "Webkit", "Moz", "ms" ],
emptyStyle = document.createElement( "div" ).style,
vendorProps = {};
// Swappable if display is none or starts with table
// except "table", "table-cell", or "table-caption"
// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
rdisplayswap = /^(none|table(?!-c[ea]).+)/,
rcustomProp = /^--/,
cssShow = { position: "absolute", visibility: "hidden", display: "block" },
cssNormalTransform = {
letterSpacing: "0",
fontWeight: "400"
},
cssPrefixes = [ "Webkit", "Moz", "ms" ],
emptyStyle = document.createElement( "div" ).style;
// Return a css property mapped to a potentially vendor prefixed property
// Return a vendor-prefixed property or undefined
function vendorPropName( name ) {
// Shortcut for names that are not vendor prefixed
if ( name in emptyStyle ) {
return name;
}
// Check for vendor prefixed names
var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
i = cssPrefixes.length;
@ -6259,16 +6427,33 @@ function vendorPropName( name ) {
}
}
// Return a property mapped along what jQuery.cssProps suggests or to
// a vendor prefixed property.
// Return a potentially-mapped jQuery.cssProps or vendor prefixed property
function finalPropName( name ) {
var ret = jQuery.cssProps[ name ];
if ( !ret ) {
ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;
var final = jQuery.cssProps[ name ] || vendorProps[ name ];
if ( final ) {
return final;
}
return ret;
if ( name in emptyStyle ) {
return name;
}
return vendorProps[ name ] = vendorPropName( name ) || name;
}
var
// Swappable if display is none or starts with table
// except "table", "table-cell", or "table-caption"
// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
rdisplayswap = /^(none|table(?!-c[ea]).+)/,
rcustomProp = /^--/,
cssShow = { position: "absolute", visibility: "hidden", display: "block" },
cssNormalTransform = {
letterSpacing: "0",
fontWeight: "400"
};
function setPositiveNumber( elem, value, subtract ) {
// Any relative (+/-) values have already been
@ -6340,7 +6525,10 @@ function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computed
delta -
extra -
0.5
) );
// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter
// Use an explicit zero to avoid NaN (gh-3964)
) ) || 0;
}
return delta;
@ -6350,9 +6538,16 @@ function getWidthOrHeight( elem, dimension, extra ) {
// Start with computed style
var styles = getStyles( elem ),
// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).
// Fake content-box until we know it's needed to know the true value.
boxSizingNeeded = !support.boxSizingReliable() || extra,
isBorderBox = boxSizingNeeded &&
jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
valueIsBorderBox = isBorderBox,
val = curCSS( elem, dimension, styles ),
isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
valueIsBorderBox = isBorderBox;
offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );
// Support: Firefox <=54
// Return a confounding non-pixel value or feign ignorance, as appropriate.
@ -6363,22 +6558,29 @@ function getWidthOrHeight( elem, dimension, extra ) {
val = "auto";
}
// Check for style in case a browser which returns unreliable values
// for getComputedStyle silently falls back to the reliable elem.style
valueIsBorderBox = valueIsBorderBox &&
( support.boxSizingReliable() || val === elem.style[ dimension ] );
// Fall back to offsetWidth/offsetHeight when value is "auto"
// This happens for inline elements with no explicit setting (gh-3571)
// Support: Android <=4.1 - 4.3 only
// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)
if ( val === "auto" ||
!parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) {
// Support: IE 9-11 only
// Also use offsetWidth/offsetHeight for when box sizing is unreliable
// We use getClientRects() to check for hidden/disconnected.
// In those cases, the computed value can be trusted to be border-box
if ( ( !support.boxSizingReliable() && isBorderBox ||
val === "auto" ||
!parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) &&
elem.getClientRects().length ) {
val = elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ];
isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
// offsetWidth/offsetHeight provide border-box values
valueIsBorderBox = true;
// Where available, offsetWidth/offsetHeight approximate border box dimensions.
// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the
// retrieved value as a content box dimension.
valueIsBorderBox = offsetProp in elem;
if ( valueIsBorderBox ) {
val = elem[ offsetProp ];
}
}
// Normalize "" and auto
@ -6424,6 +6626,13 @@ jQuery.extend( {
"flexGrow": true,
"flexShrink": true,
"fontWeight": true,
"gridArea": true,
"gridColumn": true,
"gridColumnEnd": true,
"gridColumnStart": true,
"gridRow": true,
"gridRowEnd": true,
"gridRowStart": true,
"lineHeight": true,
"opacity": true,
"order": true,
@ -6479,7 +6688,9 @@ jQuery.extend( {
}
// If a number was passed in, add the unit (except for certain CSS properties)
if ( type === "number" ) {
// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append
// "px" to a few hardcoded values.
if ( type === "number" && !isCustomProp ) {
value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
}
@ -6579,18 +6790,29 @@ jQuery.each( [ "height", "width" ], function( i, dimension ) {
set: function( elem, value, extra ) {
var matches,
styles = getStyles( elem ),
isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
subtract = extra && boxModelAdjustment(
elem,
dimension,
extra,
isBorderBox,
styles
);
// Only read styles.position if the test has a chance to fail
// to avoid forcing a reflow.
scrollboxSizeBuggy = !support.scrollboxSize() &&
styles.position === "absolute",
// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)
boxSizingNeeded = scrollboxSizeBuggy || extra,
isBorderBox = boxSizingNeeded &&
jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
subtract = extra ?
boxModelAdjustment(
elem,
dimension,
extra,
isBorderBox,
styles
) :
0;
// Account for unreliable border-box dimensions by comparing offset* to computed and
// faking a content-box to get border and padding (gh-3699)
if ( isBorderBox && support.scrollboxSize() === styles.position ) {
if ( isBorderBox && scrollboxSizeBuggy ) {
subtract -= Math.ceil(
elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
parseFloat( styles[ dimension ] ) -
@ -6758,9 +6980,9 @@ Tween.propHooks = {
// Use .style if available and use plain properties where available.
if ( jQuery.fx.step[ tween.prop ] ) {
jQuery.fx.step[ tween.prop ]( tween );
} else if ( tween.elem.nodeType === 1 &&
( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||
jQuery.cssHooks[ tween.prop ] ) ) {
} else if ( tween.elem.nodeType === 1 && (
jQuery.cssHooks[ tween.prop ] ||
tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {
jQuery.style( tween.elem, tween.prop, tween.now + tween.unit );
} else {
tween.elem[ tween.prop ] = tween.now;
@ -8467,6 +8689,10 @@ jQuery.param = function( a, traditional ) {
encodeURIComponent( value == null ? "" : value );
};
if ( a == null ) {
return "";
}
// If an array was passed in, assume that it is an array of form elements.
if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
@ -8969,12 +9195,14 @@ jQuery.extend( {
if ( !responseHeaders ) {
responseHeaders = {};
while ( ( match = rheaders.exec( responseHeadersString ) ) ) {
responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];
responseHeaders[ match[ 1 ].toLowerCase() + " " ] =
( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] )
.concat( match[ 2 ] );
}
}
match = responseHeaders[ key.toLowerCase() ];
match = responseHeaders[ key.toLowerCase() + " " ];
}
return match == null ? null : match;
return match == null ? null : match.join( ", " );
},
// Raw string
@ -9363,7 +9591,7 @@ jQuery.each( [ "get", "post" ], function( i, method ) {
} );
jQuery._evalUrl = function( url ) {
jQuery._evalUrl = function( url, options ) {
return jQuery.ajax( {
url: url,
@ -9373,7 +9601,16 @@ jQuery._evalUrl = function( url ) {
cache: true,
async: false,
global: false,
"throws": true
// Only evaluate the response if it is successful (gh-4126)
// dataFilter is not invoked for failure responses, so using it instead
// of the default converter is kludgy but it works.
converters: {
"text script": function() {}
},
dataFilter: function( response ) {
jQuery.globalEval( response, options );
}
} );
};
@ -9656,24 +9893,21 @@ jQuery.ajaxPrefilter( "script", function( s ) {
// Bind script tag hack transport
jQuery.ajaxTransport( "script", function( s ) {
// This transport only deals with cross domain requests
if ( s.crossDomain ) {
// This transport only deals with cross domain or forced-by-attrs requests
if ( s.crossDomain || s.scriptAttrs ) {
var script, callback;
return {
send: function( _, complete ) {
script = jQuery( "<script>" ).prop( {
charset: s.scriptCharset,
src: s.url
} ).on(
"load error",
callback = function( evt ) {
script = jQuery( "<script>" )
.attr( s.scriptAttrs || {} )
.prop( { charset: s.scriptCharset, src: s.url } )
.on( "load error", callback = function( evt ) {
script.remove();
callback = null;
if ( evt ) {
complete( evt.type === "error" ? 404 : 200, evt.type );
}
}
);
} );
// Use native DOM manipulation to avoid our domManip AJAX trickery
document.head.appendChild( script[ 0 ] );


+ 2
- 2
src/Web/WebhookClient/wwwroot/lib/jquery/dist/jquery.min.js
File diff suppressed because it is too large
View File


+ 1
- 1
src/Web/WebhookClient/wwwroot/lib/jquery/dist/jquery.min.map
File diff suppressed because it is too large
View File


+ 34
- 0
src/csproj-files.txt View File

@ -0,0 +1,34 @@
COPY src/ApiGateways/ApiGw-Base/*.csproj /src/src/ApiGateways/ApiGw-Base/
COPY src/ApiGateways/Mobile.Bff.Shopping/aggregator/*.csproj /src/src/ApiGateways/Mobile.Bff.Shopping/aggregator/
COPY src/ApiGateways/Web.Bff.Shopping/aggregator/*.csproj /src/src/ApiGateways/Web.Bff.Shopping/aggregator/
COPY src/BuildingBlocks/EventBus/CommandBus/*.csproj /src/src/BuildingBlocks/EventBus/CommandBus/
COPY src/BuildingBlocks/EventBus/EventBus/*.csproj /src/src/BuildingBlocks/EventBus/EventBus/
COPY src/BuildingBlocks/EventBus/EventBus.Tests/*.csproj /src/src/BuildingBlocks/EventBus/EventBus.Tests/
COPY src/BuildingBlocks/EventBus/EventBusRabbitMQ/*.csproj /src/src/BuildingBlocks/EventBus/EventBusRabbitMQ/
COPY src/BuildingBlocks/EventBus/EventBusServiceBus/*.csproj /src/src/BuildingBlocks/EventBus/EventBusServiceBus/
COPY src/BuildingBlocks/EventBus/IntegrationEventLogEF/*.csproj /src/src/BuildingBlocks/EventBus/IntegrationEventLogEF/
COPY src/BuildingBlocks/WebHostCustomization/WebHost.Customization/*.csproj /src/src/BuildingBlocks/WebHostCustomization/WebHost.Customization/
COPY src/Services/Basket/Basket.API/*.csproj /src/src/Services/Basket/Basket.API/
COPY src/Services/Basket/Basket.FunctionalTests/*.csproj /src/src/Services/Basket/Basket.FunctionalTests/
COPY src/Services/Basket/Basket.UnitTests/*.csproj /src/src/Services/Basket/Basket.UnitTests/
COPY src/Services/Catalog/Catalog.API/*.csproj /src/src/Services/Catalog/Catalog.API/
COPY src/Services/Catalog/Catalog.FunctionalTests/*.csproj /src/src/Services/Catalog/Catalog.FunctionalTests/
COPY src/Services/Catalog/Catalog.UnitTests/*.csproj /src/src/Services/Catalog/Catalog.UnitTests/
COPY src/Services/Identity/Identity.API/*.csproj /src/src/Services/Identity/Identity.API/
COPY src/Services/Location/Locations.API/*.csproj /src/src/Services/Location/Locations.API/
COPY src/Services/Location/Locations.FunctionalTests/*.csproj /src/src/Services/Location/Locations.FunctionalTests/
COPY src/Services/Marketing/Marketing.API/*.csproj /src/src/Services/Marketing/Marketing.API/
COPY src/Services/Marketing/Marketing.FunctionalTests/*.csproj /src/src/Services/Marketing/Marketing.FunctionalTests/
COPY src/Services/Ordering/Ordering.API/*.csproj /src/src/Services/Ordering/Ordering.API/
COPY src/Services/Ordering/Ordering.BackgroundTasks/*.csproj /src/src/Services/Ordering/Ordering.BackgroundTasks/
COPY src/Services/Ordering/Ordering.Domain/*.csproj /src/src/Services/Ordering/Ordering.Domain/
COPY src/Services/Ordering/Ordering.FunctionalTests/*.csproj /src/src/Services/Ordering/Ordering.FunctionalTests/
COPY src/Services/Ordering/Ordering.Infrastructure/*.csproj /src/src/Services/Ordering/Ordering.Infrastructure/
COPY src/Services/Ordering/Ordering.SignalrHub/*.csproj /src/src/Services/Ordering/Ordering.SignalrHub/
COPY src/Services/Ordering/Ordering.UnitTests/*.csproj /src/src/Services/Ordering/Ordering.UnitTests/
COPY src/Services/Payment/Payment.API/*.csproj /src/src/Services/Payment/Payment.API/
COPY src/Services/Webhooks/Webhooks.API/*.csproj /src/src/Services/Webhooks/Webhooks.API/
COPY src/Web/WebhookClient/*.csproj /src/src/Web/WebhookClient/
COPY src/Web/WebMVC/*.csproj /src/src/Web/WebMVC/
COPY src/Web/WebSPA/*.csproj /src/src/Web/WebSPA/
COPY src/Web/WebStatus/*.csproj /src/src/Web/WebStatus/

+ 0
- 65
tests-results/basket-test-results.xml View File

@ -1,65 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<TestRun id="96da8a5c-5309-4e3a-a6ed-89303561a450" name="@cc795b0cf03c 2018-12-05 11:23:58" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
<Times creation="2018-12-05T11:23:58.8840432+00:00" queuing="2018-12-05T11:23:58.8840443+00:00" start="2018-12-05T11:23:45.4010507+00:00" finish="2018-12-05T11:23:58.9725825+00:00" />
<TestSettings name="default" id="0df98659-1d05-46e8-a58f-e605f0367f36">
<Deployment runDeploymentRoot="_cc795b0cf03c_2018-12-05_11_23_58" />
</TestSettings>
<Results>
<UnitTestResult executionId="561851a9-f9d7-46a8-a72f-b15d9f881e98" testId="65eb92e5-3f81-c557-7b6a-e31bbb392a30" testName="UnitTest.Basket.Application.CartControllerTest.Add_to_cart_success" computerName="cc795b0cf03c" duration="00:00:00.0520000" startTime="2018-12-05T11:23:58.3708078+00:00" endTime="2018-12-05T11:23:58.3708084+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="561851a9-f9d7-46a8-a72f-b15d9f881e98" />
<UnitTestResult executionId="503e5b72-ad5e-47e3-ba7a-e6bdf65fb3c6" testId="f13c87f6-4345-41c1-0ceb-530a37f8c45c" testName="UnitTest.Basket.Application.BasketWebApiTest.Doing_Checkout_Without_Basket_Should_Return_Bad_Request" computerName="cc795b0cf03c" duration="00:00:00.0030000" startTime="2018-12-05T11:23:58.2981843+00:00" endTime="2018-12-05T11:23:58.2981850+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="503e5b72-ad5e-47e3-ba7a-e6bdf65fb3c6" />
<UnitTestResult executionId="c94bfac7-b0f7-4c85-88f5-9b6ea39aefc7" testId="1be065ec-8cda-95e2-fd64-2bec276720d6" testName="UnitTest.Basket.Application.BasketWebApiTest.Doing_Checkout_Wit_Basket_Should_Publish_UserCheckoutAccepted_Integration_Event" computerName="cc795b0cf03c" duration="00:00:00.1550000" startTime="2018-12-05T11:23:58.2980829+00:00" endTime="2018-12-05T11:23:58.2980839+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="c94bfac7-b0f7-4c85-88f5-9b6ea39aefc7" />
<UnitTestResult executionId="0786dbc3-3a84-4d94-ba06-10ef5b44fede" testId="cfb3e0df-fbb0-f11f-f586-af6d36973673" testName="UnitTest.Basket.Application.CartControllerTest.Post_cart_success" computerName="cc795b0cf03c" duration="00:00:00.0970000" startTime="2018-12-05T11:23:58.4478198+00:00" endTime="2018-12-05T11:23:58.4478226+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="0786dbc3-3a84-4d94-ba06-10ef5b44fede" />
<UnitTestResult executionId="53777076-ea09-481d-acbb-b8b1d85513a9" testId="f7add3c9-26d7-687c-a46e-1e880e36f193" testName="UnitTest.Basket.Application.BasketWebApiTest.Post_customer_basket_success" computerName="cc795b0cf03c" duration="00:00:00.0630000" startTime="2018-12-05T11:23:58.3707805+00:00" endTime="2018-12-05T11:23:58.3707839+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="53777076-ea09-481d-acbb-b8b1d85513a9" />
<UnitTestResult executionId="3b321d3b-b42d-4b4b-a1b2-510a96ada515" testId="33fde07d-fd90-8a31-ce7f-73d594f79232" testName="UnitTest.Basket.Application.CartControllerTest.Post_cart_checkout_success" computerName="cc795b0cf03c" duration="00:00:01.4900000" startTime="2018-12-05T11:23:58.2970206+00:00" endTime="2018-12-05T11:23:58.2970240+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="3b321d3b-b42d-4b4b-a1b2-510a96ada515" />
<UnitTestResult executionId="9de96a13-7c87-4519-9c24-19861f9036e3" testId="ace9ddb6-e897-b915-1e3c-4ae77eb2f0e6" testName="UnitTest.Basket.Application.BasketWebApiTest.Get_customer_basket_success" computerName="cc795b0cf03c" duration="00:00:01.2680000" startTime="2018-12-05T11:23:58.0931351+00:00" endTime="2018-12-05T11:23:58.0931394+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="9de96a13-7c87-4519-9c24-19861f9036e3" />
</Results>
<TestDefinitions>
<UnitTest name="UnitTest.Basket.Application.CartControllerTest.Post_cart_success" storage="/src/src/services/basket/basket.unittests/bin/debug/netcoreapp2.1/basket.unittests.dll" id="cfb3e0df-fbb0-f11f-f586-af6d36973673">
<Execution id="0786dbc3-3a84-4d94-ba06-10ef5b44fede" />
<TestMethod codeBase="/src/src/Services/Basket/Basket.UnitTests/bin/Debug/netcoreapp2.1/Basket.UnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Basket.UnitTests" name="UnitTest.Basket.Application.CartControllerTest.Post_cart_success" />
</UnitTest>
<UnitTest name="UnitTest.Basket.Application.CartControllerTest.Add_to_cart_success" storage="/src/src/services/basket/basket.unittests/bin/debug/netcoreapp2.1/basket.unittests.dll" id="65eb92e5-3f81-c557-7b6a-e31bbb392a30">
<Execution id="561851a9-f9d7-46a8-a72f-b15d9f881e98" />
<TestMethod codeBase="/src/src/Services/Basket/Basket.UnitTests/bin/Debug/netcoreapp2.1/Basket.UnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Basket.UnitTests" name="UnitTest.Basket.Application.CartControllerTest.Add_to_cart_success" />
</UnitTest>
<UnitTest name="UnitTest.Basket.Application.BasketWebApiTest.Get_customer_basket_success" storage="/src/src/services/basket/basket.unittests/bin/debug/netcoreapp2.1/basket.unittests.dll" id="ace9ddb6-e897-b915-1e3c-4ae77eb2f0e6">
<Execution id="9de96a13-7c87-4519-9c24-19861f9036e3" />
<TestMethod codeBase="/src/src/Services/Basket/Basket.UnitTests/bin/Debug/netcoreapp2.1/Basket.UnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Basket.UnitTests" name="UnitTest.Basket.Application.BasketWebApiTest.Get_customer_basket_success" />
</UnitTest>
<UnitTest name="UnitTest.Basket.Application.BasketWebApiTest.Doing_Checkout_Without_Basket_Should_Return_Bad_Request" storage="/src/src/services/basket/basket.unittests/bin/debug/netcoreapp2.1/basket.unittests.dll" id="f13c87f6-4345-41c1-0ceb-530a37f8c45c">
<Execution id="503e5b72-ad5e-47e3-ba7a-e6bdf65fb3c6" />
<TestMethod codeBase="/src/src/Services/Basket/Basket.UnitTests/bin/Debug/netcoreapp2.1/Basket.UnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Basket.UnitTests" name="UnitTest.Basket.Application.BasketWebApiTest.Doing_Checkout_Without_Basket_Should_Return_Bad_Request" />
</UnitTest>
<UnitTest name="UnitTest.Basket.Application.BasketWebApiTest.Doing_Checkout_Wit_Basket_Should_Publish_UserCheckoutAccepted_Integration_Event" storage="/src/src/services/basket/basket.unittests/bin/debug/netcoreapp2.1/basket.unittests.dll" id="1be065ec-8cda-95e2-fd64-2bec276720d6">
<Execution id="c94bfac7-b0f7-4c85-88f5-9b6ea39aefc7" />
<TestMethod codeBase="/src/src/Services/Basket/Basket.UnitTests/bin/Debug/netcoreapp2.1/Basket.UnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Basket.UnitTests" name="UnitTest.Basket.Application.BasketWebApiTest.Doing_Checkout_Wit_Basket_Should_Publish_UserCheckoutAccepted_Integration_Event" />
</UnitTest>
<UnitTest name="UnitTest.Basket.Application.BasketWebApiTest.Post_customer_basket_success" storage="/src/src/services/basket/basket.unittests/bin/debug/netcoreapp2.1/basket.unittests.dll" id="f7add3c9-26d7-687c-a46e-1e880e36f193">
<Execution id="53777076-ea09-481d-acbb-b8b1d85513a9" />
<TestMethod codeBase="/src/src/Services/Basket/Basket.UnitTests/bin/Debug/netcoreapp2.1/Basket.UnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Basket.UnitTests" name="UnitTest.Basket.Application.BasketWebApiTest.Post_customer_basket_success" />
</UnitTest>
<UnitTest name="UnitTest.Basket.Application.CartControllerTest.Post_cart_checkout_success" storage="/src/src/services/basket/basket.unittests/bin/debug/netcoreapp2.1/basket.unittests.dll" id="33fde07d-fd90-8a31-ce7f-73d594f79232">
<Execution id="3b321d3b-b42d-4b4b-a1b2-510a96ada515" />
<TestMethod codeBase="/src/src/Services/Basket/Basket.UnitTests/bin/Debug/netcoreapp2.1/Basket.UnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Basket.UnitTests" name="UnitTest.Basket.Application.CartControllerTest.Post_cart_checkout_success" />
</UnitTest>
</TestDefinitions>
<TestEntries>
<TestEntry testId="65eb92e5-3f81-c557-7b6a-e31bbb392a30" executionId="561851a9-f9d7-46a8-a72f-b15d9f881e98" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="f13c87f6-4345-41c1-0ceb-530a37f8c45c" executionId="503e5b72-ad5e-47e3-ba7a-e6bdf65fb3c6" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="1be065ec-8cda-95e2-fd64-2bec276720d6" executionId="c94bfac7-b0f7-4c85-88f5-9b6ea39aefc7" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="cfb3e0df-fbb0-f11f-f586-af6d36973673" executionId="0786dbc3-3a84-4d94-ba06-10ef5b44fede" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="f7add3c9-26d7-687c-a46e-1e880e36f193" executionId="53777076-ea09-481d-acbb-b8b1d85513a9" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="33fde07d-fd90-8a31-ce7f-73d594f79232" executionId="3b321d3b-b42d-4b4b-a1b2-510a96ada515" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="ace9ddb6-e897-b915-1e3c-4ae77eb2f0e6" executionId="9de96a13-7c87-4519-9c24-19861f9036e3" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
</TestEntries>
<TestLists>
<TestList name="Results Not in a List" id="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestList name="All Loaded Results" id="19431567-8539-422a-85d7-44ee4e166bda" />
</TestLists>
<ResultSummary outcome="Completed">
<Counters total="7" executed="7" passed="7" failed="0" error="0" timeout="0" aborted="0" inconclusive="0" passedButRunAborted="0" notRunnable="0" notExecuted="0" disconnected="0" warning="0" completed="0" inProgress="0" pending="0" />
<Output>
<StdOut>[xUnit.net 00:00:06.1434181] Discovering: Basket.UnitTests[xUnit.net 00:00:06.4201662] Discovered: Basket.UnitTests[xUnit.net 00:00:06.4258049] Starting: Basket.UnitTests[xUnit.net 00:00:09.1721258] Finished: Basket.UnitTests</StdOut>
</Output>
</ResultSummary>
</TestRun>

+ 0
- 65
tests-results/basket-unit-test-results.xml View File

@ -1,65 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<TestRun id="39a96562-8a46-4aea-b99e-1d90d37045ec" name="@1785163cba64 2018-12-05 11:23:50" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
<Times creation="2018-12-05T11:23:50.8479571+00:00" queuing="2018-12-05T11:23:50.8479579+00:00" start="2018-12-05T11:23:36.2713555+00:00" finish="2018-12-05T11:23:51.5732318+00:00" />
<TestSettings name="default" id="65e5de94-5658-477a-b4c1-cce07b716d69">
<Deployment runDeploymentRoot="_1785163cba64_2018-12-05_11_23_50" />
</TestSettings>
<Results>
<UnitTestResult executionId="f5375449-ee76-4ccd-ab5d-01788538583a" testId="1be065ec-8cda-95e2-fd64-2bec276720d6" testName="UnitTest.Basket.Application.BasketWebApiTest.Doing_Checkout_Wit_Basket_Should_Publish_UserCheckoutAccepted_Integration_Event" computerName="1785163cba64" duration="00:00:00.1400000" startTime="2018-12-05T11:23:50.4881664+00:00" endTime="2018-12-05T11:23:50.4881673+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="f5375449-ee76-4ccd-ab5d-01788538583a" />
<UnitTestResult executionId="c3451c4c-90b7-465d-b638-8c5e57a8680e" testId="f13c87f6-4345-41c1-0ceb-530a37f8c45c" testName="UnitTest.Basket.Application.BasketWebApiTest.Doing_Checkout_Without_Basket_Should_Return_Bad_Request" computerName="1785163cba64" duration="00:00:00.0020000" startTime="2018-12-05T11:23:50.4882146+00:00" endTime="2018-12-05T11:23:50.4882152+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="c3451c4c-90b7-465d-b638-8c5e57a8680e" />
<UnitTestResult executionId="37eceb9f-3500-4c62-8033-85f7322b60c1" testId="33fde07d-fd90-8a31-ce7f-73d594f79232" testName="UnitTest.Basket.Application.CartControllerTest.Post_cart_checkout_success" computerName="1785163cba64" duration="00:00:01.6230000" startTime="2018-12-05T11:23:50.4875247+00:00" endTime="2018-12-05T11:23:50.4875264+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="37eceb9f-3500-4c62-8033-85f7322b60c1" />
<UnitTestResult executionId="61af83cc-1623-40ee-8546-6cd0d6ece3cd" testId="65eb92e5-3f81-c557-7b6a-e31bbb392a30" testName="UnitTest.Basket.Application.CartControllerTest.Add_to_cart_success" computerName="1785163cba64" duration="00:00:00.0950000" startTime="2018-12-05T11:23:50.5151450+00:00" endTime="2018-12-05T11:23:50.5151485+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="61af83cc-1623-40ee-8546-6cd0d6ece3cd" />
<UnitTestResult executionId="3b941fb3-30a2-4d14-98f8-30c04df4c032" testId="cfb3e0df-fbb0-f11f-f586-af6d36973673" testName="UnitTest.Basket.Application.CartControllerTest.Post_cart_success" computerName="1785163cba64" duration="00:00:00.4220000" startTime="2018-12-05T11:23:50.9378230+00:00" endTime="2018-12-05T11:23:50.9378277+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="3b941fb3-30a2-4d14-98f8-30c04df4c032" />
<UnitTestResult executionId="0149f0b7-82e4-4793-909c-7a7083f75e98" testId="f7add3c9-26d7-687c-a46e-1e880e36f193" testName="UnitTest.Basket.Application.BasketWebApiTest.Post_customer_basket_success" computerName="1785163cba64" duration="00:00:00.1400000" startTime="2018-12-05T11:23:50.7725055+00:00" endTime="2018-12-05T11:23:50.7725076+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="0149f0b7-82e4-4793-909c-7a7083f75e98" />
<UnitTestResult executionId="9e2c8945-5e2e-4082-a8fc-2ed57b21df87" testId="ace9ddb6-e897-b915-1e3c-4ae77eb2f0e6" testName="UnitTest.Basket.Application.BasketWebApiTest.Get_customer_basket_success" computerName="1785163cba64" duration="00:00:01.3570000" startTime="2018-12-05T11:23:50.3117877+00:00" endTime="2018-12-05T11:23:50.3117921+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="9e2c8945-5e2e-4082-a8fc-2ed57b21df87" />
</Results>
<TestDefinitions>
<UnitTest name="UnitTest.Basket.Application.CartControllerTest.Post_cart_success" storage="/src/src/services/basket/basket.unittests/bin/debug/netcoreapp2.1/basket.unittests.dll" id="cfb3e0df-fbb0-f11f-f586-af6d36973673">
<Execution id="3b941fb3-30a2-4d14-98f8-30c04df4c032" />
<TestMethod codeBase="/src/src/Services/Basket/Basket.UnitTests/bin/Debug/netcoreapp2.1/Basket.UnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Basket.UnitTests" name="UnitTest.Basket.Application.CartControllerTest.Post_cart_success" />
</UnitTest>
<UnitTest name="UnitTest.Basket.Application.CartControllerTest.Add_to_cart_success" storage="/src/src/services/basket/basket.unittests/bin/debug/netcoreapp2.1/basket.unittests.dll" id="65eb92e5-3f81-c557-7b6a-e31bbb392a30">
<Execution id="61af83cc-1623-40ee-8546-6cd0d6ece3cd" />
<TestMethod codeBase="/src/src/Services/Basket/Basket.UnitTests/bin/Debug/netcoreapp2.1/Basket.UnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Basket.UnitTests" name="UnitTest.Basket.Application.CartControllerTest.Add_to_cart_success" />
</UnitTest>
<UnitTest name="UnitTest.Basket.Application.BasketWebApiTest.Get_customer_basket_success" storage="/src/src/services/basket/basket.unittests/bin/debug/netcoreapp2.1/basket.unittests.dll" id="ace9ddb6-e897-b915-1e3c-4ae77eb2f0e6">
<Execution id="9e2c8945-5e2e-4082-a8fc-2ed57b21df87" />
<TestMethod codeBase="/src/src/Services/Basket/Basket.UnitTests/bin/Debug/netcoreapp2.1/Basket.UnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Basket.UnitTests" name="UnitTest.Basket.Application.BasketWebApiTest.Get_customer_basket_success" />
</UnitTest>
<UnitTest name="UnitTest.Basket.Application.BasketWebApiTest.Doing_Checkout_Without_Basket_Should_Return_Bad_Request" storage="/src/src/services/basket/basket.unittests/bin/debug/netcoreapp2.1/basket.unittests.dll" id="f13c87f6-4345-41c1-0ceb-530a37f8c45c">
<Execution id="c3451c4c-90b7-465d-b638-8c5e57a8680e" />
<TestMethod codeBase="/src/src/Services/Basket/Basket.UnitTests/bin/Debug/netcoreapp2.1/Basket.UnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Basket.UnitTests" name="UnitTest.Basket.Application.BasketWebApiTest.Doing_Checkout_Without_Basket_Should_Return_Bad_Request" />
</UnitTest>
<UnitTest name="UnitTest.Basket.Application.BasketWebApiTest.Doing_Checkout_Wit_Basket_Should_Publish_UserCheckoutAccepted_Integration_Event" storage="/src/src/services/basket/basket.unittests/bin/debug/netcoreapp2.1/basket.unittests.dll" id="1be065ec-8cda-95e2-fd64-2bec276720d6">
<Execution id="f5375449-ee76-4ccd-ab5d-01788538583a" />
<TestMethod codeBase="/src/src/Services/Basket/Basket.UnitTests/bin/Debug/netcoreapp2.1/Basket.UnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Basket.UnitTests" name="UnitTest.Basket.Application.BasketWebApiTest.Doing_Checkout_Wit_Basket_Should_Publish_UserCheckoutAccepted_Integration_Event" />
</UnitTest>
<UnitTest name="UnitTest.Basket.Application.BasketWebApiTest.Post_customer_basket_success" storage="/src/src/services/basket/basket.unittests/bin/debug/netcoreapp2.1/basket.unittests.dll" id="f7add3c9-26d7-687c-a46e-1e880e36f193">
<Execution id="0149f0b7-82e4-4793-909c-7a7083f75e98" />
<TestMethod codeBase="/src/src/Services/Basket/Basket.UnitTests/bin/Debug/netcoreapp2.1/Basket.UnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Basket.UnitTests" name="UnitTest.Basket.Application.BasketWebApiTest.Post_customer_basket_success" />
</UnitTest>
<UnitTest name="UnitTest.Basket.Application.CartControllerTest.Post_cart_checkout_success" storage="/src/src/services/basket/basket.unittests/bin/debug/netcoreapp2.1/basket.unittests.dll" id="33fde07d-fd90-8a31-ce7f-73d594f79232">
<Execution id="37eceb9f-3500-4c62-8033-85f7322b60c1" />
<TestMethod codeBase="/src/src/Services/Basket/Basket.UnitTests/bin/Debug/netcoreapp2.1/Basket.UnitTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Basket.UnitTests" name="UnitTest.Basket.Application.CartControllerTest.Post_cart_checkout_success" />
</UnitTest>
</TestDefinitions>
<TestEntries>
<TestEntry testId="1be065ec-8cda-95e2-fd64-2bec276720d6" executionId="f5375449-ee76-4ccd-ab5d-01788538583a" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="f13c87f6-4345-41c1-0ceb-530a37f8c45c" executionId="c3451c4c-90b7-465d-b638-8c5e57a8680e" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="33fde07d-fd90-8a31-ce7f-73d594f79232" executionId="37eceb9f-3500-4c62-8033-85f7322b60c1" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="65eb92e5-3f81-c557-7b6a-e31bbb392a30" executionId="61af83cc-1623-40ee-8546-6cd0d6ece3cd" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="cfb3e0df-fbb0-f11f-f586-af6d36973673" executionId="3b941fb3-30a2-4d14-98f8-30c04df4c032" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="f7add3c9-26d7-687c-a46e-1e880e36f193" executionId="0149f0b7-82e4-4793-909c-7a7083f75e98" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="ace9ddb6-e897-b915-1e3c-4ae77eb2f0e6" executionId="9e2c8945-5e2e-4082-a8fc-2ed57b21df87" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
</TestEntries>
<TestLists>
<TestList name="Results Not in a List" id="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestList name="All Loaded Results" id="19431567-8539-422a-85d7-44ee4e166bda" />
</TestLists>
<ResultSummary outcome="Completed">
<Counters total="7" executed="7" passed="7" failed="0" error="0" timeout="0" aborted="0" inconclusive="0" passedButRunAborted="0" notRunnable="0" notExecuted="0" disconnected="0" warning="0" completed="0" inProgress="0" pending="0" />
<Output>
<StdOut>[xUnit.net 00:00:06.7811016] Discovering: Basket.UnitTests[xUnit.net 00:00:07.1809374] Discovered: Basket.UnitTests[xUnit.net 00:00:07.1870723] Starting: Basket.UnitTests[xUnit.net 00:00:10.4183620] Finished: Basket.UnitTests</StdOut>
</Output>
</ResultSummary>
</TestRun>

+ 0
- 89
tests-results/catalog-test-results.xml View File

@ -1,89 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<TestRun id="e380625d-16e5-49cd-944f-9ec6dea3a534" name="@3773afd31eec 2018-12-05 11:24:03" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
<Times creation="2018-12-05T11:24:03.2781261+00:00" queuing="2018-12-05T11:24:03.2781270+00:00" start="2018-12-05T11:23:32.0461930+00:00" finish="2018-12-05T11:24:11.2871593+00:00" />
<TestSettings name="default" id="f4f579f9-05a0-4097-a3f3-f9dfa1c5fc22">
<Deployment runDeploymentRoot="_3773afd31eec_2018-12-05_11_24_03" />
</TestSettings>
<Results>
<UnitTestResult executionId="7627e97a-ef37-4a9b-b3bf-831d462fd492" testId="5eb4d579-2cb5-5f78-2e18-16e03c3f7383" testName="Catalog.FunctionalTests.CatalogScenarios.Get_get_paginated_filtered_catalog_items_and_response_ok_status_code" computerName="3773afd31eec" duration="00:00:00.8630000" startTime="2018-12-05T11:24:07.1639284+00:00" endTime="2018-12-05T11:24:07.1639318+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="7627e97a-ef37-4a9b-b3bf-831d462fd492" />
<UnitTestResult executionId="0fee9d77-1650-4141-8ee6-d928accb140f" testId="2098f087-bc1f-3220-4cc1-67f39aa69a42" testName="Catalog.FunctionalTests.CatalogScenarios.Get_get_catalogitem_by_id_and_response_bad_request_status_code" computerName="3773afd31eec" duration="00:00:00.6480000" startTime="2018-12-05T11:24:08.3220470+00:00" endTime="2018-12-05T11:24:08.3220496+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="0fee9d77-1650-4141-8ee6-d928accb140f" />
<UnitTestResult executionId="3de0a499-cded-43da-a582-2c4cf5e16ca9" testId="95c21500-9ed5-4391-9d7f-aebfd9190a11" testName="Catalog.FunctionalTests.CatalogScenarios.Get_get_filtered_catalog_items_and_response_ok_status_code" computerName="3773afd31eec" duration="00:00:00.8980000" startTime="2018-12-05T11:24:06.2955434+00:00" endTime="2018-12-05T11:24:06.2955469+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="3de0a499-cded-43da-a582-2c4cf5e16ca9" />
<UnitTestResult executionId="267805fc-cddd-41f9-a16b-7188226aae18" testId="54a38b91-4242-ca21-909c-b632c74bc378" testName="Catalog.FunctionalTests.CatalogScenarios.Get_get_catalogitem_by_name_and_response_ok_status_code" computerName="3773afd31eec" duration="00:00:00.8000000" startTime="2018-12-05T11:24:10.3388056+00:00" endTime="2018-12-05T11:24:10.3388081+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="267805fc-cddd-41f9-a16b-7188226aae18" />
<UnitTestResult executionId="a65654f5-92c9-4819-96d1-8d20e6448c22" testId="8b3ccbdd-cacd-e530-8e30-2c496c5b54d7" testName="Catalog.FunctionalTests.CatalogScenarios.Get_catalog_brands_response_ok_status_code" computerName="3773afd31eec" duration="00:00:00.4300000" startTime="2018-12-05T11:24:10.7713399+00:00" endTime="2018-12-05T11:24:10.7713434+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="a65654f5-92c9-4819-96d1-8d20e6448c22" />
<UnitTestResult executionId="7ba54f92-cc72-4be8-85d1-8b04a12b7c57" testId="0606c0fc-b6b0-1185-6890-3ad909738a66" testName="Catalog.FunctionalTests.CatalogScenarios.Get_catalog_types_response_ok_status_code" computerName="3773afd31eec" duration="00:00:00.5540000" startTime="2018-12-05T11:24:09.5410174+00:00" endTime="2018-12-05T11:24:09.5410203+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="7ba54f92-cc72-4be8-85d1-8b04a12b7c57" />
<UnitTestResult executionId="127defdc-eead-4b18-98e8-bb4a80f6d9a5" testId="78871366-7f13-cf9e-a618-4298c2fb3e63" testName="Catalog.FunctionalTests.CatalogScenarios.Get_get_catalogitem_by_id_and_response_ok_status_code" computerName="3773afd31eec" duration="00:00:19.2330000" startTime="2018-12-05T11:24:03.0044366+00:00" endTime="2018-12-05T11:24:03.0044408+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="127defdc-eead-4b18-98e8-bb4a80f6d9a5" />
<UnitTestResult executionId="1ed13bda-347c-40c8-b22d-bf148423331a" testId="5ddae08d-62ee-6680-a77c-640b5af2e809" testName="Catalog.FunctionalTests.CatalogScenarios.Get_get_paginated_catalog_items_and_response_ok_status_code" computerName="3773afd31eec" duration="00:00:00.6640000" startTime="2018-12-05T11:24:08.9852118+00:00" endTime="2018-12-05T11:24:08.9852149+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="1ed13bda-347c-40c8-b22d-bf148423331a" />
<UnitTestResult executionId="44e01d30-5f3a-42de-8671-1b0e542043de" testId="73afd2bb-85ac-239d-a889-a35ecbb96b02" testName="Catalog.FunctionalTests.CatalogScenarios.Get_get_catalogitem_by_id_and_response_not_found_status_code" computerName="3773afd31eec" duration="00:00:00.7330000" startTime="2018-12-05T11:24:05.4140150+00:00" endTime="2018-12-05T11:24:05.4140190+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="44e01d30-5f3a-42de-8671-1b0e542043de" />
<UnitTestResult executionId="c24ac03b-44a6-44eb-8e62-e77254199297" testId="1b373321-94b2-88eb-53a2-36d186286a1f" testName="Catalog.FunctionalTests.CatalogScenarios.Get_get_all_catalogitems_and_response_ok_status_code" computerName="3773afd31eec" duration="00:00:00.5140000" startTime="2018-12-05T11:24:07.6804365+00:00" endTime="2018-12-05T11:24:07.6804402+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="c24ac03b-44a6-44eb-8e62-e77254199297" />
<UnitTestResult executionId="188a98f4-e551-46b5-8954-81ec68261133" testId="c61af54f-3a98-9867-2720-4af9bf810653" testName="Catalog.FunctionalTests.CatalogScenarios.Get_get_paginated_catalogitem_by_name_and_response_ok_status_code" computerName="3773afd31eec" duration="00:00:01.5720000" startTime="2018-12-05T11:24:04.6656166+00:00" endTime="2018-12-05T11:24:04.6656202+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="188a98f4-e551-46b5-8954-81ec68261133" />
</Results>
<TestDefinitions>
<UnitTest name="Catalog.FunctionalTests.CatalogScenarios.Get_get_catalogitem_by_id_and_response_bad_request_status_code" storage="/src/src/services/catalog/catalog.functionaltests/bin/debug/netcoreapp2.1/catalog.functionaltests.dll" id="2098f087-bc1f-3220-4cc1-67f39aa69a42">
<Execution id="0fee9d77-1650-4141-8ee6-d928accb140f" />
<TestMethod codeBase="/src/src/Services/Catalog/Catalog.FunctionalTests/bin/Debug/netcoreapp2.1/Catalog.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Catalog.FunctionalTests" name="Catalog.FunctionalTests.CatalogScenarios.Get_get_catalogitem_by_id_and_response_bad_request_status_code" />
</UnitTest>
<UnitTest name="Catalog.FunctionalTests.CatalogScenarios.Get_get_all_catalogitems_and_response_ok_status_code" storage="/src/src/services/catalog/catalog.functionaltests/bin/debug/netcoreapp2.1/catalog.functionaltests.dll" id="1b373321-94b2-88eb-53a2-36d186286a1f">
<Execution id="c24ac03b-44a6-44eb-8e62-e77254199297" />
<TestMethod codeBase="/src/src/Services/Catalog/Catalog.FunctionalTests/bin/Debug/netcoreapp2.1/Catalog.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Catalog.FunctionalTests" name="Catalog.FunctionalTests.CatalogScenarios.Get_get_all_catalogitems_and_response_ok_status_code" />
</UnitTest>
<UnitTest name="Catalog.FunctionalTests.CatalogScenarios.Get_get_catalogitem_by_id_and_response_ok_status_code" storage="/src/src/services/catalog/catalog.functionaltests/bin/debug/netcoreapp2.1/catalog.functionaltests.dll" id="78871366-7f13-cf9e-a618-4298c2fb3e63">
<Execution id="127defdc-eead-4b18-98e8-bb4a80f6d9a5" />
<TestMethod codeBase="/src/src/Services/Catalog/Catalog.FunctionalTests/bin/Debug/netcoreapp2.1/Catalog.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Catalog.FunctionalTests" name="Catalog.FunctionalTests.CatalogScenarios.Get_get_catalogitem_by_id_and_response_ok_status_code" />
</UnitTest>
<UnitTest name="Catalog.FunctionalTests.CatalogScenarios.Get_get_catalogitem_by_name_and_response_ok_status_code" storage="/src/src/services/catalog/catalog.functionaltests/bin/debug/netcoreapp2.1/catalog.functionaltests.dll" id="54a38b91-4242-ca21-909c-b632c74bc378">
<Execution id="267805fc-cddd-41f9-a16b-7188226aae18" />
<TestMethod codeBase="/src/src/Services/Catalog/Catalog.FunctionalTests/bin/Debug/netcoreapp2.1/Catalog.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Catalog.FunctionalTests" name="Catalog.FunctionalTests.CatalogScenarios.Get_get_catalogitem_by_name_and_response_ok_status_code" />
</UnitTest>
<UnitTest name="Catalog.FunctionalTests.CatalogScenarios.Get_get_paginated_catalog_items_and_response_ok_status_code" storage="/src/src/services/catalog/catalog.functionaltests/bin/debug/netcoreapp2.1/catalog.functionaltests.dll" id="5ddae08d-62ee-6680-a77c-640b5af2e809">
<Execution id="1ed13bda-347c-40c8-b22d-bf148423331a" />
<TestMethod codeBase="/src/src/Services/Catalog/Catalog.FunctionalTests/bin/Debug/netcoreapp2.1/Catalog.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Catalog.FunctionalTests" name="Catalog.FunctionalTests.CatalogScenarios.Get_get_paginated_catalog_items_and_response_ok_status_code" />
</UnitTest>
<UnitTest name="Catalog.FunctionalTests.CatalogScenarios.Get_catalog_brands_response_ok_status_code" storage="/src/src/services/catalog/catalog.functionaltests/bin/debug/netcoreapp2.1/catalog.functionaltests.dll" id="8b3ccbdd-cacd-e530-8e30-2c496c5b54d7">
<Execution id="a65654f5-92c9-4819-96d1-8d20e6448c22" />
<TestMethod codeBase="/src/src/Services/Catalog/Catalog.FunctionalTests/bin/Debug/netcoreapp2.1/Catalog.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Catalog.FunctionalTests" name="Catalog.FunctionalTests.CatalogScenarios.Get_catalog_brands_response_ok_status_code" />
</UnitTest>
<UnitTest name="Catalog.FunctionalTests.CatalogScenarios.Get_get_catalogitem_by_id_and_response_not_found_status_code" storage="/src/src/services/catalog/catalog.functionaltests/bin/debug/netcoreapp2.1/catalog.functionaltests.dll" id="73afd2bb-85ac-239d-a889-a35ecbb96b02">
<Execution id="44e01d30-5f3a-42de-8671-1b0e542043de" />
<TestMethod codeBase="/src/src/Services/Catalog/Catalog.FunctionalTests/bin/Debug/netcoreapp2.1/Catalog.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Catalog.FunctionalTests" name="Catalog.FunctionalTests.CatalogScenarios.Get_get_catalogitem_by_id_and_response_not_found_status_code" />
</UnitTest>
<UnitTest name="Catalog.FunctionalTests.CatalogScenarios.Get_get_filtered_catalog_items_and_response_ok_status_code" storage="/src/src/services/catalog/catalog.functionaltests/bin/debug/netcoreapp2.1/catalog.functionaltests.dll" id="95c21500-9ed5-4391-9d7f-aebfd9190a11">
<Execution id="3de0a499-cded-43da-a582-2c4cf5e16ca9" />
<TestMethod codeBase="/src/src/Services/Catalog/Catalog.FunctionalTests/bin/Debug/netcoreapp2.1/Catalog.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Catalog.FunctionalTests" name="Catalog.FunctionalTests.CatalogScenarios.Get_get_filtered_catalog_items_and_response_ok_status_code" />
</UnitTest>
<UnitTest name="Catalog.FunctionalTests.CatalogScenarios.Get_catalog_types_response_ok_status_code" storage="/src/src/services/catalog/catalog.functionaltests/bin/debug/netcoreapp2.1/catalog.functionaltests.dll" id="0606c0fc-b6b0-1185-6890-3ad909738a66">
<Execution id="7ba54f92-cc72-4be8-85d1-8b04a12b7c57" />
<TestMethod codeBase="/src/src/Services/Catalog/Catalog.FunctionalTests/bin/Debug/netcoreapp2.1/Catalog.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Catalog.FunctionalTests" name="Catalog.FunctionalTests.CatalogScenarios.Get_catalog_types_response_ok_status_code" />
</UnitTest>
<UnitTest name="Catalog.FunctionalTests.CatalogScenarios.Get_get_paginated_filtered_catalog_items_and_response_ok_status_code" storage="/src/src/services/catalog/catalog.functionaltests/bin/debug/netcoreapp2.1/catalog.functionaltests.dll" id="5eb4d579-2cb5-5f78-2e18-16e03c3f7383">
<Execution id="7627e97a-ef37-4a9b-b3bf-831d462fd492" />
<TestMethod codeBase="/src/src/Services/Catalog/Catalog.FunctionalTests/bin/Debug/netcoreapp2.1/Catalog.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Catalog.FunctionalTests" name="Catalog.FunctionalTests.CatalogScenarios.Get_get_paginated_filtered_catalog_items_and_response_ok_status_code" />
</UnitTest>
<UnitTest name="Catalog.FunctionalTests.CatalogScenarios.Get_get_paginated_catalogitem_by_name_and_response_ok_status_code" storage="/src/src/services/catalog/catalog.functionaltests/bin/debug/netcoreapp2.1/catalog.functionaltests.dll" id="c61af54f-3a98-9867-2720-4af9bf810653">
<Execution id="188a98f4-e551-46b5-8954-81ec68261133" />
<TestMethod codeBase="/src/src/Services/Catalog/Catalog.FunctionalTests/bin/Debug/netcoreapp2.1/Catalog.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Catalog.FunctionalTests" name="Catalog.FunctionalTests.CatalogScenarios.Get_get_paginated_catalogitem_by_name_and_response_ok_status_code" />
</UnitTest>
</TestDefinitions>
<TestEntries>
<TestEntry testId="5eb4d579-2cb5-5f78-2e18-16e03c3f7383" executionId="7627e97a-ef37-4a9b-b3bf-831d462fd492" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="2098f087-bc1f-3220-4cc1-67f39aa69a42" executionId="0fee9d77-1650-4141-8ee6-d928accb140f" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="95c21500-9ed5-4391-9d7f-aebfd9190a11" executionId="3de0a499-cded-43da-a582-2c4cf5e16ca9" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="54a38b91-4242-ca21-909c-b632c74bc378" executionId="267805fc-cddd-41f9-a16b-7188226aae18" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="8b3ccbdd-cacd-e530-8e30-2c496c5b54d7" executionId="a65654f5-92c9-4819-96d1-8d20e6448c22" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="0606c0fc-b6b0-1185-6890-3ad909738a66" executionId="7ba54f92-cc72-4be8-85d1-8b04a12b7c57" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="78871366-7f13-cf9e-a618-4298c2fb3e63" executionId="127defdc-eead-4b18-98e8-bb4a80f6d9a5" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="5ddae08d-62ee-6680-a77c-640b5af2e809" executionId="1ed13bda-347c-40c8-b22d-bf148423331a" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="73afd2bb-85ac-239d-a889-a35ecbb96b02" executionId="44e01d30-5f3a-42de-8671-1b0e542043de" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="1b373321-94b2-88eb-53a2-36d186286a1f" executionId="c24ac03b-44a6-44eb-8e62-e77254199297" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="c61af54f-3a98-9867-2720-4af9bf810653" executionId="188a98f4-e551-46b5-8954-81ec68261133" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
</TestEntries>
<TestLists>
<TestList name="Results Not in a List" id="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestList name="All Loaded Results" id="19431567-8539-422a-85d7-44ee4e166bda" />
</TestLists>
<ResultSummary outcome="Completed">
<Counters total="11" executed="11" passed="11" failed="0" error="0" timeout="0" aborted="0" inconclusive="0" passedButRunAborted="0" notRunnable="0" notExecuted="0" disconnected="0" warning="0" completed="0" inProgress="0" pending="0" />
<Output>
<StdOut>[xUnit.net 00:00:06.0723374] Discovering: Catalog.FunctionalTests[xUnit.net 00:00:06.4361995] Discovered: Catalog.FunctionalTests[xUnit.net 00:00:06.4447894] Starting: Catalog.FunctionalTests[xUnit.net 00:00:34.5834045] Finished: Catalog.FunctionalTests</StdOut>
</Output>
</ResultSummary>
</TestRun>

+ 0
- 89
tests-results/catalog-unit-test-results.xml View File

@ -1,89 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<TestRun id="aca6211e-f6da-4bba-bf41-a276c78d1443" name="@3a7e7ef6aa8e 2018-12-05 11:24:02" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
<Times creation="2018-12-05T11:24:02.5864478+00:00" queuing="2018-12-05T11:24:02.5864485+00:00" start="2018-12-05T11:23:32.1458050+00:00" finish="2018-12-05T11:24:11.1044674+00:00" />
<TestSettings name="default" id="6b291d29-0315-494b-9db2-50bee5d38134">
<Deployment runDeploymentRoot="_3a7e7ef6aa8e_2018-12-05_11_24_02" />
</TestSettings>
<Results>
<UnitTestResult executionId="ed3644e1-b21b-46aa-a9d4-bddc3fd92c0d" testId="5eb4d579-2cb5-5f78-2e18-16e03c3f7383" testName="Catalog.FunctionalTests.CatalogScenarios.Get_get_paginated_filtered_catalog_items_and_response_ok_status_code" computerName="3a7e7ef6aa8e" duration="00:00:00.6620000" startTime="2018-12-05T11:24:06.3308316+00:00" endTime="2018-12-05T11:24:06.3308351+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="ed3644e1-b21b-46aa-a9d4-bddc3fd92c0d" />
<UnitTestResult executionId="eb67cab7-a711-48d1-9697-eff25b27e037" testId="c61af54f-3a98-9867-2720-4af9bf810653" testName="Catalog.FunctionalTests.CatalogScenarios.Get_get_paginated_catalogitem_by_name_and_response_ok_status_code" computerName="3a7e7ef6aa8e" duration="00:00:01.5160000" startTime="2018-12-05T11:24:03.8893359+00:00" endTime="2018-12-05T11:24:03.8893387+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="eb67cab7-a711-48d1-9697-eff25b27e037" />
<UnitTestResult executionId="d2b2bc96-e96b-44fe-b852-16a137d3f630" testId="5ddae08d-62ee-6680-a77c-640b5af2e809" testName="Catalog.FunctionalTests.CatalogScenarios.Get_get_paginated_catalog_items_and_response_ok_status_code" computerName="3a7e7ef6aa8e" duration="00:00:00.6630000" startTime="2018-12-05T11:24:08.3377755+00:00" endTime="2018-12-05T11:24:08.3377790+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="d2b2bc96-e96b-44fe-b852-16a137d3f630" />
<UnitTestResult executionId="4ac1e35c-b3b9-4882-b67b-ef08b65bc29b" testId="95c21500-9ed5-4391-9d7f-aebfd9190a11" testName="Catalog.FunctionalTests.CatalogScenarios.Get_get_filtered_catalog_items_and_response_ok_status_code" computerName="3a7e7ef6aa8e" duration="00:00:01.0900000" startTime="2018-12-05T11:24:05.6700321+00:00" endTime="2018-12-05T11:24:05.6700348+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="4ac1e35c-b3b9-4882-b67b-ef08b65bc29b" />
<UnitTestResult executionId="7d7a7d65-6854-4466-a37d-15347956f783" testId="2098f087-bc1f-3220-4cc1-67f39aa69a42" testName="Catalog.FunctionalTests.CatalogScenarios.Get_get_catalogitem_by_id_and_response_bad_request_status_code" computerName="3a7e7ef6aa8e" duration="00:00:00.3800000" startTime="2018-12-05T11:24:07.6681963+00:00" endTime="2018-12-05T11:24:07.6681996+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="7d7a7d65-6854-4466-a37d-15347956f783" />
<UnitTestResult executionId="fa563e70-2fc9-44b8-b818-85c371e50bc2" testId="54a38b91-4242-ca21-909c-b632c74bc378" testName="Catalog.FunctionalTests.CatalogScenarios.Get_get_catalogitem_by_name_and_response_ok_status_code" computerName="3a7e7ef6aa8e" duration="00:00:00.7230000" startTime="2018-12-05T11:24:09.8641893+00:00" endTime="2018-12-05T11:24:09.8641921+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="fa563e70-2fc9-44b8-b818-85c371e50bc2" />
<UnitTestResult executionId="b06b8d43-2696-4904-bc38-3feb3363ff3d" testId="0606c0fc-b6b0-1185-6890-3ad909738a66" testName="Catalog.FunctionalTests.CatalogScenarios.Get_catalog_types_response_ok_status_code" computerName="3a7e7ef6aa8e" duration="00:00:00.8070000" startTime="2018-12-05T11:24:09.1399724+00:00" endTime="2018-12-05T11:24:09.1399751+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="b06b8d43-2696-4904-bc38-3feb3363ff3d" />
<UnitTestResult executionId="93160bfd-9e96-4e09-bd7f-5487be6d0b35" testId="1b373321-94b2-88eb-53a2-36d186286a1f" testName="Catalog.FunctionalTests.CatalogScenarios.Get_get_all_catalogitems_and_response_ok_status_code" computerName="3a7e7ef6aa8e" duration="00:00:00.9560000" startTime="2018-12-05T11:24:07.2880184+00:00" endTime="2018-12-05T11:24:07.2880216+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="93160bfd-9e96-4e09-bd7f-5487be6d0b35" />
<UnitTestResult executionId="5ecb8d84-de7b-483c-b965-eb7d887e41b1" testId="73afd2bb-85ac-239d-a889-a35ecbb96b02" testName="Catalog.FunctionalTests.CatalogScenarios.Get_get_catalogitem_by_id_and_response_not_found_status_code" computerName="3a7e7ef6aa8e" duration="00:00:00.6590000" startTime="2018-12-05T11:24:04.5775407+00:00" endTime="2018-12-05T11:24:04.5775450+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="5ecb8d84-de7b-483c-b965-eb7d887e41b1" />
<UnitTestResult executionId="a8110557-5a9f-448a-aae5-55a27cbda816" testId="78871366-7f13-cf9e-a618-4298c2fb3e63" testName="Catalog.FunctionalTests.CatalogScenarios.Get_get_catalogitem_by_id_and_response_ok_status_code" computerName="3a7e7ef6aa8e" duration="00:00:18.3120000" startTime="2018-12-05T11:24:02.3211973+00:00" endTime="2018-12-05T11:24:02.3212009+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="a8110557-5a9f-448a-aae5-55a27cbda816" />
<UnitTestResult executionId="d33a437b-4f8a-48f3-94a1-e8faae50e3dc" testId="8b3ccbdd-cacd-e530-8e30-2c496c5b54d7" testName="Catalog.FunctionalTests.CatalogScenarios.Get_catalog_brands_response_ok_status_code" computerName="3a7e7ef6aa8e" duration="00:00:00.7120000" startTime="2018-12-05T11:24:10.5742881+00:00" endTime="2018-12-05T11:24:10.5742915+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="d33a437b-4f8a-48f3-94a1-e8faae50e3dc" />
</Results>
<TestDefinitions>
<UnitTest name="Catalog.FunctionalTests.CatalogScenarios.Get_get_catalogitem_by_id_and_response_bad_request_status_code" storage="/src/src/services/catalog/catalog.functionaltests/bin/debug/netcoreapp2.1/catalog.functionaltests.dll" id="2098f087-bc1f-3220-4cc1-67f39aa69a42">
<Execution id="7d7a7d65-6854-4466-a37d-15347956f783" />
<TestMethod codeBase="/src/src/Services/Catalog/Catalog.FunctionalTests/bin/Debug/netcoreapp2.1/Catalog.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Catalog.FunctionalTests" name="Catalog.FunctionalTests.CatalogScenarios.Get_get_catalogitem_by_id_and_response_bad_request_status_code" />
</UnitTest>
<UnitTest name="Catalog.FunctionalTests.CatalogScenarios.Get_get_all_catalogitems_and_response_ok_status_code" storage="/src/src/services/catalog/catalog.functionaltests/bin/debug/netcoreapp2.1/catalog.functionaltests.dll" id="1b373321-94b2-88eb-53a2-36d186286a1f">
<Execution id="93160bfd-9e96-4e09-bd7f-5487be6d0b35" />
<TestMethod codeBase="/src/src/Services/Catalog/Catalog.FunctionalTests/bin/Debug/netcoreapp2.1/Catalog.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Catalog.FunctionalTests" name="Catalog.FunctionalTests.CatalogScenarios.Get_get_all_catalogitems_and_response_ok_status_code" />
</UnitTest>
<UnitTest name="Catalog.FunctionalTests.CatalogScenarios.Get_get_catalogitem_by_id_and_response_ok_status_code" storage="/src/src/services/catalog/catalog.functionaltests/bin/debug/netcoreapp2.1/catalog.functionaltests.dll" id="78871366-7f13-cf9e-a618-4298c2fb3e63">
<Execution id="a8110557-5a9f-448a-aae5-55a27cbda816" />
<TestMethod codeBase="/src/src/Services/Catalog/Catalog.FunctionalTests/bin/Debug/netcoreapp2.1/Catalog.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Catalog.FunctionalTests" name="Catalog.FunctionalTests.CatalogScenarios.Get_get_catalogitem_by_id_and_response_ok_status_code" />
</UnitTest>
<UnitTest name="Catalog.FunctionalTests.CatalogScenarios.Get_get_catalogitem_by_name_and_response_ok_status_code" storage="/src/src/services/catalog/catalog.functionaltests/bin/debug/netcoreapp2.1/catalog.functionaltests.dll" id="54a38b91-4242-ca21-909c-b632c74bc378">
<Execution id="fa563e70-2fc9-44b8-b818-85c371e50bc2" />
<TestMethod codeBase="/src/src/Services/Catalog/Catalog.FunctionalTests/bin/Debug/netcoreapp2.1/Catalog.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Catalog.FunctionalTests" name="Catalog.FunctionalTests.CatalogScenarios.Get_get_catalogitem_by_name_and_response_ok_status_code" />
</UnitTest>
<UnitTest name="Catalog.FunctionalTests.CatalogScenarios.Get_get_paginated_catalog_items_and_response_ok_status_code" storage="/src/src/services/catalog/catalog.functionaltests/bin/debug/netcoreapp2.1/catalog.functionaltests.dll" id="5ddae08d-62ee-6680-a77c-640b5af2e809">
<Execution id="d2b2bc96-e96b-44fe-b852-16a137d3f630" />
<TestMethod codeBase="/src/src/Services/Catalog/Catalog.FunctionalTests/bin/Debug/netcoreapp2.1/Catalog.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Catalog.FunctionalTests" name="Catalog.FunctionalTests.CatalogScenarios.Get_get_paginated_catalog_items_and_response_ok_status_code" />
</UnitTest>
<UnitTest name="Catalog.FunctionalTests.CatalogScenarios.Get_catalog_brands_response_ok_status_code" storage="/src/src/services/catalog/catalog.functionaltests/bin/debug/netcoreapp2.1/catalog.functionaltests.dll" id="8b3ccbdd-cacd-e530-8e30-2c496c5b54d7">
<Execution id="d33a437b-4f8a-48f3-94a1-e8faae50e3dc" />
<TestMethod codeBase="/src/src/Services/Catalog/Catalog.FunctionalTests/bin/Debug/netcoreapp2.1/Catalog.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Catalog.FunctionalTests" name="Catalog.FunctionalTests.CatalogScenarios.Get_catalog_brands_response_ok_status_code" />
</UnitTest>
<UnitTest name="Catalog.FunctionalTests.CatalogScenarios.Get_get_catalogitem_by_id_and_response_not_found_status_code" storage="/src/src/services/catalog/catalog.functionaltests/bin/debug/netcoreapp2.1/catalog.functionaltests.dll" id="73afd2bb-85ac-239d-a889-a35ecbb96b02">
<Execution id="5ecb8d84-de7b-483c-b965-eb7d887e41b1" />
<TestMethod codeBase="/src/src/Services/Catalog/Catalog.FunctionalTests/bin/Debug/netcoreapp2.1/Catalog.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Catalog.FunctionalTests" name="Catalog.FunctionalTests.CatalogScenarios.Get_get_catalogitem_by_id_and_response_not_found_status_code" />
</UnitTest>
<UnitTest name="Catalog.FunctionalTests.CatalogScenarios.Get_get_filtered_catalog_items_and_response_ok_status_code" storage="/src/src/services/catalog/catalog.functionaltests/bin/debug/netcoreapp2.1/catalog.functionaltests.dll" id="95c21500-9ed5-4391-9d7f-aebfd9190a11">
<Execution id="4ac1e35c-b3b9-4882-b67b-ef08b65bc29b" />
<TestMethod codeBase="/src/src/Services/Catalog/Catalog.FunctionalTests/bin/Debug/netcoreapp2.1/Catalog.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Catalog.FunctionalTests" name="Catalog.FunctionalTests.CatalogScenarios.Get_get_filtered_catalog_items_and_response_ok_status_code" />
</UnitTest>
<UnitTest name="Catalog.FunctionalTests.CatalogScenarios.Get_catalog_types_response_ok_status_code" storage="/src/src/services/catalog/catalog.functionaltests/bin/debug/netcoreapp2.1/catalog.functionaltests.dll" id="0606c0fc-b6b0-1185-6890-3ad909738a66">
<Execution id="b06b8d43-2696-4904-bc38-3feb3363ff3d" />
<TestMethod codeBase="/src/src/Services/Catalog/Catalog.FunctionalTests/bin/Debug/netcoreapp2.1/Catalog.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Catalog.FunctionalTests" name="Catalog.FunctionalTests.CatalogScenarios.Get_catalog_types_response_ok_status_code" />
</UnitTest>
<UnitTest name="Catalog.FunctionalTests.CatalogScenarios.Get_get_paginated_filtered_catalog_items_and_response_ok_status_code" storage="/src/src/services/catalog/catalog.functionaltests/bin/debug/netcoreapp2.1/catalog.functionaltests.dll" id="5eb4d579-2cb5-5f78-2e18-16e03c3f7383">
<Execution id="ed3644e1-b21b-46aa-a9d4-bddc3fd92c0d" />
<TestMethod codeBase="/src/src/Services/Catalog/Catalog.FunctionalTests/bin/Debug/netcoreapp2.1/Catalog.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Catalog.FunctionalTests" name="Catalog.FunctionalTests.CatalogScenarios.Get_get_paginated_filtered_catalog_items_and_response_ok_status_code" />
</UnitTest>
<UnitTest name="Catalog.FunctionalTests.CatalogScenarios.Get_get_paginated_catalogitem_by_name_and_response_ok_status_code" storage="/src/src/services/catalog/catalog.functionaltests/bin/debug/netcoreapp2.1/catalog.functionaltests.dll" id="c61af54f-3a98-9867-2720-4af9bf810653">
<Execution id="eb67cab7-a711-48d1-9697-eff25b27e037" />
<TestMethod codeBase="/src/src/Services/Catalog/Catalog.FunctionalTests/bin/Debug/netcoreapp2.1/Catalog.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Catalog.FunctionalTests" name="Catalog.FunctionalTests.CatalogScenarios.Get_get_paginated_catalogitem_by_name_and_response_ok_status_code" />
</UnitTest>
</TestDefinitions>
<TestEntries>
<TestEntry testId="5eb4d579-2cb5-5f78-2e18-16e03c3f7383" executionId="ed3644e1-b21b-46aa-a9d4-bddc3fd92c0d" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="c61af54f-3a98-9867-2720-4af9bf810653" executionId="eb67cab7-a711-48d1-9697-eff25b27e037" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="5ddae08d-62ee-6680-a77c-640b5af2e809" executionId="d2b2bc96-e96b-44fe-b852-16a137d3f630" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="95c21500-9ed5-4391-9d7f-aebfd9190a11" executionId="4ac1e35c-b3b9-4882-b67b-ef08b65bc29b" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="2098f087-bc1f-3220-4cc1-67f39aa69a42" executionId="7d7a7d65-6854-4466-a37d-15347956f783" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="54a38b91-4242-ca21-909c-b632c74bc378" executionId="fa563e70-2fc9-44b8-b818-85c371e50bc2" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="0606c0fc-b6b0-1185-6890-3ad909738a66" executionId="b06b8d43-2696-4904-bc38-3feb3363ff3d" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="1b373321-94b2-88eb-53a2-36d186286a1f" executionId="93160bfd-9e96-4e09-bd7f-5487be6d0b35" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="73afd2bb-85ac-239d-a889-a35ecbb96b02" executionId="5ecb8d84-de7b-483c-b965-eb7d887e41b1" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="78871366-7f13-cf9e-a618-4298c2fb3e63" executionId="a8110557-5a9f-448a-aae5-55a27cbda816" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="8b3ccbdd-cacd-e530-8e30-2c496c5b54d7" executionId="d33a437b-4f8a-48f3-94a1-e8faae50e3dc" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
</TestEntries>
<TestLists>
<TestList name="Results Not in a List" id="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestList name="All Loaded Results" id="19431567-8539-422a-85d7-44ee4e166bda" />
</TestLists>
<ResultSummary outcome="Completed">
<Counters total="11" executed="11" passed="11" failed="0" error="0" timeout="0" aborted="0" inconclusive="0" passedButRunAborted="0" notRunnable="0" notExecuted="0" disconnected="0" warning="0" completed="0" inProgress="0" pending="0" />
<Output>
<StdOut>[xUnit.net 00:00:06.6354381] Discovering: Catalog.FunctionalTests[xUnit.net 00:00:07.0010904] Discovered: Catalog.FunctionalTests[xUnit.net 00:00:07.0749761] Starting: Catalog.FunctionalTests[xUnit.net 00:00:34.9063753] Finished: Catalog.FunctionalTests</StdOut>
</Output>
</ResultSummary>
</TestRun>

+ 0
- 47
tests-results/locations-test-results.xml View File

@ -1,47 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<TestRun id="3a97bc8e-e891-4670-ac89-22922c2d9e4e" name="@02643924d223 2018-12-05 11:23:54" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
<Times creation="2018-12-05T11:23:54.0687389+00:00" queuing="2018-12-05T11:23:54.0687396+00:00" start="2018-12-05T11:23:22.5634952+00:00" finish="2018-12-05T11:23:56.0218928+00:00" />
<TestSettings name="default" id="ba79b184-d368-4cf9-975b-e7ea85cae4ba">
<Deployment runDeploymentRoot="_02643924d223_2018-12-05_11_23_54" />
</TestSettings>
<Results>
<UnitTestResult executionId="84e4488c-e6c0-4fd4-b5e6-396e7865516e" testId="0a4f15a8-74cd-fd17-7e39-b261ab50b0e3" testName="Locations.FunctionalTests.LocationsScenarios.Get_all_locations_response_ok_status_code" computerName="02643924d223" duration="00:00:00.3200000" startTime="2018-12-05T11:23:55.5197180+00:00" endTime="2018-12-05T11:23:55.5197222+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="84e4488c-e6c0-4fd4-b5e6-396e7865516e" />
<UnitTestResult executionId="e37faea8-a757-4a58-b244-c4005b4501db" testId="9f640d81-acae-dd4a-697b-85843aab785c" testName="Locations.FunctionalTests.LocationsScenarios.Set_new_user_Washington_location_response_ok_status_code" computerName="02643924d223" duration="00:00:16.5720000" startTime="2018-12-05T11:23:53.8003308+00:00" endTime="2018-12-05T11:23:53.8003348+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="e37faea8-a757-4a58-b244-c4005b4501db" />
<UnitTestResult executionId="3823a765-a270-4120-9cd3-11144abd2828" testId="adcf9752-4680-18b6-26e1-869d93a37efb" testName="Locations.FunctionalTests.LocationsScenarios.Set_new_user_readmond_location_response_ok_status_code" computerName="02643924d223" duration="00:00:00.8560000" startTime="2018-12-05T11:23:54.6895078+00:00" endTime="2018-12-05T11:23:54.6895118+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="3823a765-a270-4120-9cd3-11144abd2828" />
<UnitTestResult executionId="a92e857d-8ad2-4a34-85d2-fcf2492c8597" testId="78effe18-892e-ff71-3706-701d8f4770b2" testName="Locations.FunctionalTests.LocationsScenarios.Set_new_user_seattle_location_response_ok_status_code" computerName="02643924d223" duration="00:00:00.5060000" startTime="2018-12-05T11:23:55.1956204+00:00" endTime="2018-12-05T11:23:55.1956236+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="a92e857d-8ad2-4a34-85d2-fcf2492c8597" />
</Results>
<TestDefinitions>
<UnitTest name="Locations.FunctionalTests.LocationsScenarios.Set_new_user_Washington_location_response_ok_status_code" storage="/src/src/services/location/locations.functionaltests/bin/debug/netcoreapp2.1/locations.functionaltests.dll" id="9f640d81-acae-dd4a-697b-85843aab785c">
<Execution id="e37faea8-a757-4a58-b244-c4005b4501db" />
<TestMethod codeBase="/src/src/Services/Location/Locations.FunctionalTests/bin/Debug/netcoreapp2.1/Locations.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Locations.FunctionalTests" name="Locations.FunctionalTests.LocationsScenarios.Set_new_user_Washington_location_response_ok_status_code" />
</UnitTest>
<UnitTest name="Locations.FunctionalTests.LocationsScenarios.Set_new_user_seattle_location_response_ok_status_code" storage="/src/src/services/location/locations.functionaltests/bin/debug/netcoreapp2.1/locations.functionaltests.dll" id="78effe18-892e-ff71-3706-701d8f4770b2">
<Execution id="a92e857d-8ad2-4a34-85d2-fcf2492c8597" />
<TestMethod codeBase="/src/src/Services/Location/Locations.FunctionalTests/bin/Debug/netcoreapp2.1/Locations.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Locations.FunctionalTests" name="Locations.FunctionalTests.LocationsScenarios.Set_new_user_seattle_location_response_ok_status_code" />
</UnitTest>
<UnitTest name="Locations.FunctionalTests.LocationsScenarios.Set_new_user_readmond_location_response_ok_status_code" storage="/src/src/services/location/locations.functionaltests/bin/debug/netcoreapp2.1/locations.functionaltests.dll" id="adcf9752-4680-18b6-26e1-869d93a37efb">
<Execution id="3823a765-a270-4120-9cd3-11144abd2828" />
<TestMethod codeBase="/src/src/Services/Location/Locations.FunctionalTests/bin/Debug/netcoreapp2.1/Locations.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Locations.FunctionalTests" name="Locations.FunctionalTests.LocationsScenarios.Set_new_user_readmond_location_response_ok_status_code" />
</UnitTest>
<UnitTest name="Locations.FunctionalTests.LocationsScenarios.Get_all_locations_response_ok_status_code" storage="/src/src/services/location/locations.functionaltests/bin/debug/netcoreapp2.1/locations.functionaltests.dll" id="0a4f15a8-74cd-fd17-7e39-b261ab50b0e3">
<Execution id="84e4488c-e6c0-4fd4-b5e6-396e7865516e" />
<TestMethod codeBase="/src/src/Services/Location/Locations.FunctionalTests/bin/Debug/netcoreapp2.1/Locations.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Locations.FunctionalTests" name="Locations.FunctionalTests.LocationsScenarios.Get_all_locations_response_ok_status_code" />
</UnitTest>
</TestDefinitions>
<TestEntries>
<TestEntry testId="0a4f15a8-74cd-fd17-7e39-b261ab50b0e3" executionId="84e4488c-e6c0-4fd4-b5e6-396e7865516e" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="9f640d81-acae-dd4a-697b-85843aab785c" executionId="e37faea8-a757-4a58-b244-c4005b4501db" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="adcf9752-4680-18b6-26e1-869d93a37efb" executionId="3823a765-a270-4120-9cd3-11144abd2828" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="78effe18-892e-ff71-3706-701d8f4770b2" executionId="a92e857d-8ad2-4a34-85d2-fcf2492c8597" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
</TestEntries>
<TestLists>
<TestList name="Results Not in a List" id="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestList name="All Loaded Results" id="19431567-8539-422a-85d7-44ee4e166bda" />
</TestLists>
<ResultSummary outcome="Completed">
<Counters total="4" executed="4" passed="4" failed="0" error="0" timeout="0" aborted="0" inconclusive="0" passedButRunAborted="0" notRunnable="0" notExecuted="0" disconnected="0" warning="0" completed="0" inProgress="0" pending="0" />
<Output>
<StdOut>[xUnit.net 00:00:07.7665792] Discovering: Locations.FunctionalTests[xUnit.net 00:00:08.1972548] Discovered: Locations.FunctionalTests[xUnit.net 00:00:08.2137816] Starting: Locations.FunctionalTests[xUnit.net 00:00:27.6429580] Finished: Locations.FunctionalTests</StdOut>
</Output>
</ResultSummary>
</TestRun>

+ 0
- 77
tests-results/marketing-test-results.xml View File

@ -1,77 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<TestRun id="38518ece-89c2-4acd-a0fd-656b1e307ada" name="@e469457725ad 2018-11-29 09:07:47" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
<Times creation="2018-11-29T09:07:47.0107904+00:00" queuing="2018-11-29T09:07:47.0107911+00:00" start="2018-11-29T09:07:40.0471464+00:00" finish="2018-11-29T09:07:48.5378505+00:00" />
<TestSettings name="default" id="65290455-25be-41ac-ae76-614d242990ab">
<Deployment runDeploymentRoot="_e469457725ad_2018-11-29_09_07_47" />
</TestSettings>
<Results>
<UnitTestResult executionId="9079d887-1d03-4651-bbad-465e5ecbe247" testId="e0c885da-83ce-b300-fe65-41c3a5c5e28f" testName="Marketing.FunctionalTests.CampaignScenarios.Post_add_new_campaign_and_response_ok_status_code" computerName="e469457725ad" duration="00:00:00.2420000" startTime="2018-11-29T09:07:47.7537302+00:00" endTime="2018-11-29T09:07:47.7537324+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="9079d887-1d03-4651-bbad-465e5ecbe247" />
<UnitTestResult executionId="bac3bbc1-e916-4001-bfc1-4a2b4d578faf" testId="6d91b76f-00a6-9e69-4202-48e6be1280e9" testName="Marketing.FunctionalTests.CampaignScenarios.Delete_delete_campaign_and_response_not_content_status_code" computerName="e469457725ad" duration="00:00:00.5630000" startTime="2018-11-29T09:07:47.5120976+00:00" endTime="2018-11-29T09:07:47.5120997+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="bac3bbc1-e916-4001-bfc1-4a2b4d578faf" />
<UnitTestResult executionId="89f0c88d-f352-4fd5-85cd-4dc346996fea" testId="348d43c5-3f68-e1a0-fd14-f5a7c75fe894" testName="Marketing.FunctionalTests.CampaignScenarios.Put_update_campaign_and_response_not_content_status_code" computerName="e469457725ad" duration="00:00:00.2430000" startTime="2018-11-29T09:07:48.3667923+00:00" endTime="2018-11-29T09:07:48.3667945+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="89f0c88d-f352-4fd5-85cd-4dc346996fea" />
<UnitTestResult executionId="e4910f38-9f2b-4de5-a3cf-cdefde7af357" testId="b465ea84-27b5-101d-9b64-ecc018001e3e" testName="Marketing.FunctionalTests.UserLocationRoleScenarios.Post_add_new_user_location_rule_and_response_ok_status_code" computerName="e469457725ad" duration="00:00:04.2610000" startTime="2018-11-29T09:07:46.9693733+00:00" endTime="2018-11-29T09:07:46.9693747+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="e4910f38-9f2b-4de5-a3cf-cdefde7af357" />
<UnitTestResult executionId="a4d3c593-a9cb-4f37-a5b4-3404d5496594" testId="ac8ded60-54fb-4bef-36a0-5ca98eec474b" testName="Marketing.FunctionalTests.UserLocationRoleScenarios.Delete_delete_user_location_role_and_response_not_content_status_code" computerName="e469457725ad" duration="00:00:00.3710000" startTime="2018-11-29T09:07:47.3200667+00:00" endTime="2018-11-29T09:07:47.3200687+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="a4d3c593-a9cb-4f37-a5b4-3404d5496594" />
<UnitTestResult executionId="d66b1878-5d11-4e5e-a78b-0ab518db2f52" testId="fe5e0cf5-7915-7cc0-9822-1ea6a9002829" testName="Marketing.FunctionalTests.CampaignScenarios.Get_get_campaign_by_id_and_response_ok_status_code" computerName="e469457725ad" duration="00:00:00.1260000" startTime="2018-11-29T09:07:48.1241966+00:00" endTime="2018-11-29T09:07:48.1241985+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="d66b1878-5d11-4e5e-a78b-0ab518db2f52" />
<UnitTestResult executionId="9eacbc3d-b815-4fd8-a2cf-c9e173057a86" testId="b65e6fb5-507d-2399-aedb-c39bbd53dd13" testName="Marketing.FunctionalTests.CampaignScenarios.Get_get_all_campaigns_and_response_ok_status_code" computerName="e469457725ad" duration="00:00:00.2440000" startTime="2018-11-29T09:07:47.9976626+00:00" endTime="2018-11-29T09:07:47.9976648+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="9eacbc3d-b815-4fd8-a2cf-c9e173057a86" />
<UnitTestResult executionId="559fc908-d6b4-45c0-b2cc-1ec5ebf98a10" testId="42f7ecfc-c654-ab9c-0945-cfba3b51b47e" testName="Marketing.FunctionalTests.UserLocationRoleScenarios.Get_get_all_user_location_rules_by_campaignId_and_response_ok_status_code" computerName="e469457725ad" duration="00:00:00.4090000" startTime="2018-11-29T09:07:47.7294469+00:00" endTime="2018-11-29T09:07:47.7294490+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="559fc908-d6b4-45c0-b2cc-1ec5ebf98a10" />
<UnitTestResult executionId="3d7664b0-c660-41c2-bd10-6241c8bf48bb" testId="cc442a4b-50c1-22da-f021-97ab6639da3e" testName="Marketing.FunctionalTests.CampaignScenarios.Get_get_campaign_by_id_and_response_not_found_status_code" computerName="e469457725ad" duration="00:00:04.2610000" startTime="2018-11-29T09:07:46.9468875+00:00" endTime="2018-11-29T09:07:46.9468901+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="3d7664b0-c660-41c2-bd10-6241c8bf48bb" />
</Results>
<TestDefinitions>
<UnitTest name="Marketing.FunctionalTests.UserLocationRoleScenarios.Get_get_all_user_location_rules_by_campaignId_and_response_ok_status_code" storage="/src/src/services/marketing/marketing.functionaltests/bin/debug/netcoreapp2.1/marketing.functionaltests.dll" id="42f7ecfc-c654-ab9c-0945-cfba3b51b47e">
<Execution id="559fc908-d6b4-45c0-b2cc-1ec5ebf98a10" />
<TestMethod codeBase="/src/src/Services/Marketing/Marketing.FunctionalTests/bin/Debug/netcoreapp2.1/Marketing.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Marketing.FunctionalTests" name="Marketing.FunctionalTests.UserLocationRoleScenarios.Get_get_all_user_location_rules_by_campaignId_and_response_ok_status_code" />
</UnitTest>
<UnitTest name="Marketing.FunctionalTests.CampaignScenarios.Get_get_all_campaigns_and_response_ok_status_code" storage="/src/src/services/marketing/marketing.functionaltests/bin/debug/netcoreapp2.1/marketing.functionaltests.dll" id="b65e6fb5-507d-2399-aedb-c39bbd53dd13">
<Execution id="9eacbc3d-b815-4fd8-a2cf-c9e173057a86" />
<TestMethod codeBase="/src/src/Services/Marketing/Marketing.FunctionalTests/bin/Debug/netcoreapp2.1/Marketing.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Marketing.FunctionalTests" name="Marketing.FunctionalTests.CampaignScenarios.Get_get_all_campaigns_and_response_ok_status_code" />
</UnitTest>
<UnitTest name="Marketing.FunctionalTests.CampaignScenarios.Post_add_new_campaign_and_response_ok_status_code" storage="/src/src/services/marketing/marketing.functionaltests/bin/debug/netcoreapp2.1/marketing.functionaltests.dll" id="e0c885da-83ce-b300-fe65-41c3a5c5e28f">
<Execution id="9079d887-1d03-4651-bbad-465e5ecbe247" />
<TestMethod codeBase="/src/src/Services/Marketing/Marketing.FunctionalTests/bin/Debug/netcoreapp2.1/Marketing.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Marketing.FunctionalTests" name="Marketing.FunctionalTests.CampaignScenarios.Post_add_new_campaign_and_response_ok_status_code" />
</UnitTest>
<UnitTest name="Marketing.FunctionalTests.CampaignScenarios.Get_get_campaign_by_id_and_response_not_found_status_code" storage="/src/src/services/marketing/marketing.functionaltests/bin/debug/netcoreapp2.1/marketing.functionaltests.dll" id="cc442a4b-50c1-22da-f021-97ab6639da3e">
<Execution id="3d7664b0-c660-41c2-bd10-6241c8bf48bb" />
<TestMethod codeBase="/src/src/Services/Marketing/Marketing.FunctionalTests/bin/Debug/netcoreapp2.1/Marketing.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Marketing.FunctionalTests" name="Marketing.FunctionalTests.CampaignScenarios.Get_get_campaign_by_id_and_response_not_found_status_code" />
</UnitTest>
<UnitTest name="Marketing.FunctionalTests.UserLocationRoleScenarios.Post_add_new_user_location_rule_and_response_ok_status_code" storage="/src/src/services/marketing/marketing.functionaltests/bin/debug/netcoreapp2.1/marketing.functionaltests.dll" id="b465ea84-27b5-101d-9b64-ecc018001e3e">
<Execution id="e4910f38-9f2b-4de5-a3cf-cdefde7af357" />
<TestMethod codeBase="/src/src/Services/Marketing/Marketing.FunctionalTests/bin/Debug/netcoreapp2.1/Marketing.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Marketing.FunctionalTests" name="Marketing.FunctionalTests.UserLocationRoleScenarios.Post_add_new_user_location_rule_and_response_ok_status_code" />
</UnitTest>
<UnitTest name="Marketing.FunctionalTests.CampaignScenarios.Get_get_campaign_by_id_and_response_ok_status_code" storage="/src/src/services/marketing/marketing.functionaltests/bin/debug/netcoreapp2.1/marketing.functionaltests.dll" id="fe5e0cf5-7915-7cc0-9822-1ea6a9002829">
<Execution id="d66b1878-5d11-4e5e-a78b-0ab518db2f52" />
<TestMethod codeBase="/src/src/Services/Marketing/Marketing.FunctionalTests/bin/Debug/netcoreapp2.1/Marketing.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Marketing.FunctionalTests" name="Marketing.FunctionalTests.CampaignScenarios.Get_get_campaign_by_id_and_response_ok_status_code" />
</UnitTest>
<UnitTest name="Marketing.FunctionalTests.UserLocationRoleScenarios.Delete_delete_user_location_role_and_response_not_content_status_code" storage="/src/src/services/marketing/marketing.functionaltests/bin/debug/netcoreapp2.1/marketing.functionaltests.dll" id="ac8ded60-54fb-4bef-36a0-5ca98eec474b">
<Execution id="a4d3c593-a9cb-4f37-a5b4-3404d5496594" />
<TestMethod codeBase="/src/src/Services/Marketing/Marketing.FunctionalTests/bin/Debug/netcoreapp2.1/Marketing.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Marketing.FunctionalTests" name="Marketing.FunctionalTests.UserLocationRoleScenarios.Delete_delete_user_location_role_and_response_not_content_status_code" />
</UnitTest>
<UnitTest name="Marketing.FunctionalTests.CampaignScenarios.Put_update_campaign_and_response_not_content_status_code" storage="/src/src/services/marketing/marketing.functionaltests/bin/debug/netcoreapp2.1/marketing.functionaltests.dll" id="348d43c5-3f68-e1a0-fd14-f5a7c75fe894">
<Execution id="89f0c88d-f352-4fd5-85cd-4dc346996fea" />
<TestMethod codeBase="/src/src/Services/Marketing/Marketing.FunctionalTests/bin/Debug/netcoreapp2.1/Marketing.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Marketing.FunctionalTests" name="Marketing.FunctionalTests.CampaignScenarios.Put_update_campaign_and_response_not_content_status_code" />
</UnitTest>
<UnitTest name="Marketing.FunctionalTests.CampaignScenarios.Delete_delete_campaign_and_response_not_content_status_code" storage="/src/src/services/marketing/marketing.functionaltests/bin/debug/netcoreapp2.1/marketing.functionaltests.dll" id="6d91b76f-00a6-9e69-4202-48e6be1280e9">
<Execution id="bac3bbc1-e916-4001-bfc1-4a2b4d578faf" />
<TestMethod codeBase="/src/src/Services/Marketing/Marketing.FunctionalTests/bin/Debug/netcoreapp2.1/Marketing.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Marketing.FunctionalTests" name="Marketing.FunctionalTests.CampaignScenarios.Delete_delete_campaign_and_response_not_content_status_code" />
</UnitTest>
</TestDefinitions>
<TestEntries>
<TestEntry testId="e0c885da-83ce-b300-fe65-41c3a5c5e28f" executionId="9079d887-1d03-4651-bbad-465e5ecbe247" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="6d91b76f-00a6-9e69-4202-48e6be1280e9" executionId="bac3bbc1-e916-4001-bfc1-4a2b4d578faf" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="348d43c5-3f68-e1a0-fd14-f5a7c75fe894" executionId="89f0c88d-f352-4fd5-85cd-4dc346996fea" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="b465ea84-27b5-101d-9b64-ecc018001e3e" executionId="e4910f38-9f2b-4de5-a3cf-cdefde7af357" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="ac8ded60-54fb-4bef-36a0-5ca98eec474b" executionId="a4d3c593-a9cb-4f37-a5b4-3404d5496594" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="fe5e0cf5-7915-7cc0-9822-1ea6a9002829" executionId="d66b1878-5d11-4e5e-a78b-0ab518db2f52" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="b65e6fb5-507d-2399-aedb-c39bbd53dd13" executionId="9eacbc3d-b815-4fd8-a2cf-c9e173057a86" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="42f7ecfc-c654-ab9c-0945-cfba3b51b47e" executionId="559fc908-d6b4-45c0-b2cc-1ec5ebf98a10" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="cc442a4b-50c1-22da-f021-97ab6639da3e" executionId="3d7664b0-c660-41c2-bd10-6241c8bf48bb" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
</TestEntries>
<TestLists>
<TestList name="Results Not in a List" id="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestList name="All Loaded Results" id="19431567-8539-422a-85d7-44ee4e166bda" />
</TestLists>
<ResultSummary outcome="Completed">
<Counters total="9" executed="9" passed="9" failed="0" error="0" timeout="0" aborted="0" inconclusive="0" passedButRunAborted="0" notRunnable="0" notExecuted="0" disconnected="0" warning="0" completed="0" inProgress="0" pending="0" />
<Output>
<StdOut>[xUnit.net 00:00:01.0963036] Discovering: Marketing.FunctionalTests[xUnit.net 00:00:01.1452772] Discovered: Marketing.FunctionalTests[xUnit.net 00:00:01.1494340] Starting: Marketing.FunctionalTests[xUnit.net 00:00:06.9663675] Finished: Marketing.FunctionalTests</StdOut>
</Output>
</ResultSummary>
</TestRun>

+ 0
- 41
tests-results/ordering-test-results.xml View File

@ -1,41 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<TestRun id="f2920e88-61ef-4a6b-aeb1-22e22e9c820a" name="@3aa4f0b77384 2018-12-05 11:24:14" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
<Times creation="2018-12-05T11:24:14.6310887+00:00" queuing="2018-12-05T11:24:14.6310894+00:00" start="2018-12-05T11:23:51.8232085+00:00" finish="2018-12-05T11:24:16.1186394+00:00" />
<TestSettings name="default" id="1fb5b13d-2c79-4e35-9f5b-7e948c6a4a6e">
<Deployment runDeploymentRoot="_3aa4f0b77384_2018-12-05_11_24_14" />
</TestSettings>
<Results>
<UnitTestResult executionId="6776e376-4d25-4edb-ae03-414a233ca4ad" testId="01ee4a4c-4b61-ec68-b1de-10796cc68607" testName="Ordering.FunctionalTests.OrderingScenarios.Ship_order_no_order_created_bad_request_response" computerName="3aa4f0b77384" duration="00:00:00.5480000" startTime="2018-12-05T11:24:15.8390084+00:00" endTime="2018-12-05T11:24:15.8390117+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="6776e376-4d25-4edb-ae03-414a233ca4ad" />
<UnitTestResult executionId="74045a0b-4d4a-4b22-87e1-78326dd52a88" testId="37ee8be5-0517-c735-d707-a8dcd6ba7613" testName="Ordering.FunctionalTests.OrderingScenarios.Get_get_all_stored_orders_and_response_ok_status_code" computerName="3aa4f0b77384" duration="00:00:00.7200000" startTime="2018-12-05T11:24:15.2884525+00:00" endTime="2018-12-05T11:24:15.2884560+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="74045a0b-4d4a-4b22-87e1-78326dd52a88" />
<UnitTestResult executionId="006ece7e-25eb-4250-a460-400c28a819f5" testId="8c1a2207-d19c-0b78-dd96-df617732922c" testName="Ordering.FunctionalTests.OrderingScenarios.Cancel_order_no_order_created_bad_request_response" computerName="3aa4f0b77384" duration="00:00:12.5450000" startTime="2018-12-05T11:24:14.5454681+00:00" endTime="2018-12-05T11:24:14.5454717+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="006ece7e-25eb-4250-a460-400c28a819f5" />
</Results>
<TestDefinitions>
<UnitTest name="Ordering.FunctionalTests.OrderingScenarios.Ship_order_no_order_created_bad_request_response" storage="/src/src/services/ordering/ordering.functionaltests/bin/debug/netcoreapp2.1/ordering.functionaltests.dll" id="01ee4a4c-4b61-ec68-b1de-10796cc68607">
<Execution id="6776e376-4d25-4edb-ae03-414a233ca4ad" />
<TestMethod codeBase="/src/src/Services/Ordering/Ordering.FunctionalTests/bin/Debug/netcoreapp2.1/Ordering.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Ordering.FunctionalTests" name="Ordering.FunctionalTests.OrderingScenarios.Ship_order_no_order_created_bad_request_response" />
</UnitTest>
<UnitTest name="Ordering.FunctionalTests.OrderingScenarios.Cancel_order_no_order_created_bad_request_response" storage="/src/src/services/ordering/ordering.functionaltests/bin/debug/netcoreapp2.1/ordering.functionaltests.dll" id="8c1a2207-d19c-0b78-dd96-df617732922c">
<Execution id="006ece7e-25eb-4250-a460-400c28a819f5" />
<TestMethod codeBase="/src/src/Services/Ordering/Ordering.FunctionalTests/bin/Debug/netcoreapp2.1/Ordering.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Ordering.FunctionalTests" name="Ordering.FunctionalTests.OrderingScenarios.Cancel_order_no_order_created_bad_request_response" />
</UnitTest>
<UnitTest name="Ordering.FunctionalTests.OrderingScenarios.Get_get_all_stored_orders_and_response_ok_status_code" storage="/src/src/services/ordering/ordering.functionaltests/bin/debug/netcoreapp2.1/ordering.functionaltests.dll" id="37ee8be5-0517-c735-d707-a8dcd6ba7613">
<Execution id="74045a0b-4d4a-4b22-87e1-78326dd52a88" />
<TestMethod codeBase="/src/src/Services/Ordering/Ordering.FunctionalTests/bin/Debug/netcoreapp2.1/Ordering.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Ordering.FunctionalTests" name="Ordering.FunctionalTests.OrderingScenarios.Get_get_all_stored_orders_and_response_ok_status_code" />
</UnitTest>
</TestDefinitions>
<TestEntries>
<TestEntry testId="01ee4a4c-4b61-ec68-b1de-10796cc68607" executionId="6776e376-4d25-4edb-ae03-414a233ca4ad" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="37ee8be5-0517-c735-d707-a8dcd6ba7613" executionId="74045a0b-4d4a-4b22-87e1-78326dd52a88" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="8c1a2207-d19c-0b78-dd96-df617732922c" executionId="006ece7e-25eb-4250-a460-400c28a819f5" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
</TestEntries>
<TestLists>
<TestList name="Results Not in a List" id="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestList name="All Loaded Results" id="19431567-8539-422a-85d7-44ee4e166bda" />
</TestLists>
<ResultSummary outcome="Completed">
<Counters total="3" executed="3" passed="3" failed="0" error="0" timeout="0" aborted="0" inconclusive="0" passedButRunAborted="0" notRunnable="0" notExecuted="0" disconnected="0" warning="0" completed="0" inProgress="0" pending="0" />
<Output>
<StdOut>[xUnit.net 00:00:05.2039980] Discovering: Ordering.FunctionalTests[xUnit.net 00:00:05.4802527] Discovered: Ordering.FunctionalTests[xUnit.net 00:00:05.5249888] Starting: Ordering.FunctionalTests[xUnit.net 00:00:20.1396674] Finished: Ordering.FunctionalTests</StdOut>
</Output>
</ResultSummary>
</TestRun>

+ 0
- 41
tests-results/ordering-unit-test-results.xml View File

@ -1,41 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<TestRun id="2c3747dd-fc05-4392-a731-de2f32a62eef" name="@2b67e7387bb9 2018-12-05 11:24:14" xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010">
<Times creation="2018-12-05T11:24:14.5102211+00:00" queuing="2018-12-05T11:24:14.5102222+00:00" start="2018-12-05T11:23:50.0598477+00:00" finish="2018-12-05T11:24:15.8957360+00:00" />
<TestSettings name="default" id="cda9c3c1-e5e4-4684-8b96-7eed6663bec0">
<Deployment runDeploymentRoot="_2b67e7387bb9_2018-12-05_11_24_14" />
</TestSettings>
<Results>
<UnitTestResult executionId="1d45c572-59de-4d7f-8f9c-d69b5dadbf02" testId="8c1a2207-d19c-0b78-dd96-df617732922c" testName="Ordering.FunctionalTests.OrderingScenarios.Cancel_order_no_order_created_bad_request_response" computerName="2b67e7387bb9" duration="00:00:13.3130000" startTime="2018-12-05T11:24:14.4257017+00:00" endTime="2018-12-05T11:24:14.4257056+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="1d45c572-59de-4d7f-8f9c-d69b5dadbf02" />
<UnitTestResult executionId="9e229357-8b76-4569-914b-6030866ee316" testId="37ee8be5-0517-c735-d707-a8dcd6ba7613" testName="Ordering.FunctionalTests.OrderingScenarios.Get_get_all_stored_orders_and_response_ok_status_code" computerName="2b67e7387bb9" duration="00:00:00.6970000" startTime="2018-12-05T11:24:15.1362290+00:00" endTime="2018-12-05T11:24:15.1362337+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="9e229357-8b76-4569-914b-6030866ee316" />
<UnitTestResult executionId="1e2ff621-c28c-49de-bfe7-d890ac94d9e6" testId="01ee4a4c-4b61-ec68-b1de-10796cc68607" testName="Ordering.FunctionalTests.OrderingScenarios.Ship_order_no_order_created_bad_request_response" computerName="2b67e7387bb9" duration="00:00:00.4950000" startTime="2018-12-05T11:24:15.6429216+00:00" endTime="2018-12-05T11:24:15.6429254+00:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Passed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="1e2ff621-c28c-49de-bfe7-d890ac94d9e6" />
</Results>
<TestDefinitions>
<UnitTest name="Ordering.FunctionalTests.OrderingScenarios.Ship_order_no_order_created_bad_request_response" storage="/src/src/services/ordering/ordering.functionaltests/bin/debug/netcoreapp2.1/ordering.functionaltests.dll" id="01ee4a4c-4b61-ec68-b1de-10796cc68607">
<Execution id="1e2ff621-c28c-49de-bfe7-d890ac94d9e6" />
<TestMethod codeBase="/src/src/Services/Ordering/Ordering.FunctionalTests/bin/Debug/netcoreapp2.1/Ordering.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Ordering.FunctionalTests" name="Ordering.FunctionalTests.OrderingScenarios.Ship_order_no_order_created_bad_request_response" />
</UnitTest>
<UnitTest name="Ordering.FunctionalTests.OrderingScenarios.Cancel_order_no_order_created_bad_request_response" storage="/src/src/services/ordering/ordering.functionaltests/bin/debug/netcoreapp2.1/ordering.functionaltests.dll" id="8c1a2207-d19c-0b78-dd96-df617732922c">
<Execution id="1d45c572-59de-4d7f-8f9c-d69b5dadbf02" />
<TestMethod codeBase="/src/src/Services/Ordering/Ordering.FunctionalTests/bin/Debug/netcoreapp2.1/Ordering.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Ordering.FunctionalTests" name="Ordering.FunctionalTests.OrderingScenarios.Cancel_order_no_order_created_bad_request_response" />
</UnitTest>
<UnitTest name="Ordering.FunctionalTests.OrderingScenarios.Get_get_all_stored_orders_and_response_ok_status_code" storage="/src/src/services/ordering/ordering.functionaltests/bin/debug/netcoreapp2.1/ordering.functionaltests.dll" id="37ee8be5-0517-c735-d707-a8dcd6ba7613">
<Execution id="9e229357-8b76-4569-914b-6030866ee316" />
<TestMethod codeBase="/src/src/Services/Ordering/Ordering.FunctionalTests/bin/Debug/netcoreapp2.1/Ordering.FunctionalTests.dll" adapterTypeName="executor://xunit/VsTestRunner2/netcoreapp" className="Ordering.FunctionalTests" name="Ordering.FunctionalTests.OrderingScenarios.Get_get_all_stored_orders_and_response_ok_status_code" />
</UnitTest>
</TestDefinitions>
<TestEntries>
<TestEntry testId="8c1a2207-d19c-0b78-dd96-df617732922c" executionId="1d45c572-59de-4d7f-8f9c-d69b5dadbf02" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="37ee8be5-0517-c735-d707-a8dcd6ba7613" executionId="9e229357-8b76-4569-914b-6030866ee316" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestEntry testId="01ee4a4c-4b61-ec68-b1de-10796cc68607" executionId="1e2ff621-c28c-49de-bfe7-d890ac94d9e6" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
</TestEntries>
<TestLists>
<TestList name="Results Not in a List" id="8c84fa94-04c1-424b-9868-57a2d4851a1d" />
<TestList name="All Loaded Results" id="19431567-8539-422a-85d7-44ee4e166bda" />
</TestLists>
<ResultSummary outcome="Completed">
<Counters total="3" executed="3" passed="3" failed="0" error="0" timeout="0" aborted="0" inconclusive="0" passedButRunAborted="0" notRunnable="0" notExecuted="0" disconnected="0" warning="0" completed="0" inProgress="0" pending="0" />
<Output>
<StdOut>[xUnit.net 00:00:05.4257955] Discovering: Ordering.FunctionalTests[xUnit.net 00:00:05.9560169] Discovered: Ordering.FunctionalTests[xUnit.net 00:00:05.9845906] Starting: Ordering.FunctionalTests[xUnit.net 00:00:21.2769127] Finished: Ordering.FunctionalTests</StdOut>
</Output>
</ResultSummary>
</TestRun>

Loading…
Cancel
Save