Skip to content

バックエンドサーバーのヘルスチェック用APIを追加する #283

バックエンドサーバーのヘルスチェック用APIを追加する

バックエンドサーバーのヘルスチェック用APIを追加する #283

GitHub Actions / Test results failed Nov 7, 2023 in 0s

Test results ❌

Tests failed

Report Passed Failed Skipped Time
samples/Dressca/dressca-backend/tests/Dressca.IntegrationTest/TestResults/_fv-az452-277_2023-11-07_04_58_10.trx 1❌ 8s
samples/Dressca/dressca-backend/tests/Dressca.UnitTests/TestResults/_fv-az452-277_2023-11-07_04_58_08.trx 161✅ 6s

❌ samples/Dressca/dressca-backend/tests/Dressca.IntegrationTest/TestResults/_fv-az452-277_2023-11-07_04_58_10.trx

1 tests were completed in 8s with 0 passed, 1 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Dressca.IntegrationTest.DatabaseHealthCheckTest 1❌ 2s

❌ Dressca.IntegrationTest.DatabaseHealthCheckTest

❌ DatabaseConnectionTest
	Microsoft.Data.SqlClient.SqlException : A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 0 - Success)

✅ samples/Dressca/dressca-backend/tests/Dressca.UnitTests/TestResults/_fv-az452-277_2023-11-07_04_58_08.trx

161 tests were completed in 6s with 161 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
Dressca.UnitTests.ApplicationCore.Accounting.AccountTest 10✅ 2ms
Dressca.UnitTests.ApplicationCore.Assets.AssetApplicationServiceTest 3✅ 324ms
Dressca.UnitTests.ApplicationCore.Assets.AssetTest 4✅ 1ms
Dressca.UnitTests.ApplicationCore.Assets.AssetTypesTest 4✅ 0ms
Dressca.UnitTests.ApplicationCore.Baskets.BasketApplicationServiceTest 21✅ 135ms
Dressca.UnitTests.ApplicationCore.Baskets.BasketItemTest 2✅ 1ms
Dressca.UnitTests.ApplicationCore.Baskets.BasketTest 27✅ 63ms
Dressca.UnitTests.ApplicationCore.Catalog.CatalogApplicationServiceTest 4✅ 64ms
Dressca.UnitTests.ApplicationCore.Catalog.CatalogBrandTest 4✅ 10ms
Dressca.UnitTests.ApplicationCore.Catalog.CatalogCategoryTest 4✅ 1ms
Dressca.UnitTests.ApplicationCore.Catalog.CatalogDomainServiceTest 3✅ 75ms
Dressca.UnitTests.ApplicationCore.Catalog.CatalogItemAssetTest 4✅ 1ms
Dressca.UnitTests.ApplicationCore.Catalog.CatalogItemTest 1✅ 10ms
Dressca.UnitTests.ApplicationCore.Ordering.AddressTest 4✅ 3ms
Dressca.UnitTests.ApplicationCore.Ordering.CatalogItemOrderedTest 7✅ 2ms
Dressca.UnitTests.ApplicationCore.Ordering.OrderApplicationServiceTest 6✅ 146ms
Dressca.UnitTests.ApplicationCore.Ordering.OrderItemAssetTest 4✅ 1ms
Dressca.UnitTests.ApplicationCore.Ordering.OrderItemTest 5✅ 29ms
Dressca.UnitTests.ApplicationCore.Ordering.OrderTest 11✅ 7ms
Dressca.UnitTests.ApplicationCore.Ordering.ShipToTest 2✅ 1ms
Dressca.UnitTests.SystemCommon.BusinessErrorCollectionTest 4✅ 79ms
Dressca.UnitTests.SystemCommon.BusinessErrorTest 8✅ 2ms
Dressca.UnitTests.SystemCommon.BusinessExceptionTest 3✅ 69ms
Dressca.UnitTests.SystemCommon.ObjectExtensionsTest 2✅ 1ms
Dressca.UnitTests.Web.Assets.AssetExtensionsTest 2✅ 1ms
Dressca.UnitTests.Web.Baskets.HttpContextExtensionsTest 8✅ 490ms
Dressca.UnitTests.Web.Runtime.BusinessExceptionDevelopmentFilterTest 2✅ 2ms
Dressca.UnitTests.Web.Runtime.BusinessExceptionFilterTest 2✅ 28ms

✅ Dressca.UnitTests.ApplicationCore.Accounting.AccountTest

✅ Constructor_会計アイテムがnullの場合例外
✅ GetConsumptionTax_消費税は0円未満の端数が切り捨てられる
✅ GetConsumptionTax_消費税は会計アイテムの合計金額と送料に対してかかる
✅ GetDeliveryCharge_会計アイテムがないとき送料は0円
✅ GetDeliveryCharge_会計アイムの合計金額が5000円以上の場合は送料が0円になる
✅ GetDeliveryCharge_会計アイムの合計金額が5000円未満の場合は送料が500円になる
✅ GetItemsTotalPrice_会計アイテムが1件あるとき会計アイムの合計金額は送料と消費税をのぞく合計金額になる
✅ GetItemsTotalPrice_会計アイテムが2件あるとき会計アイムの合計金額は送料と消費税をのぞく合計金額になる
✅ GetItemsTotalPrice_会計アイテムがないとき会計アイムの合計金額は0円
✅ GetTotalPrice_税込み合計は会計アイテムの合計金額と送料と消費税額の合計となる

✅ Dressca.UnitTests.ApplicationCore.Assets.AssetApplicationServiceTest

✅ GetAssetStreamInfo_ストアに指定したアセットコードのストリームが見つからない場合は例外
✅ GetAssetStreamInfo_リポジトリから取得したアセット情報とストアから取得したストリームを取得できる
✅ GetAssetStreamInfo_リポジトリに指定したアセットコードの情報が見つからない場合は例外

✅ Dressca.UnitTests.ApplicationCore.Assets.AssetTest

✅ Constructor_アセットコードがnullまたは空の文字列の場合例外(assetCode: " ")
✅ Constructor_アセットコードがnullまたは空の文字列の場合例外(assetCode: "")
✅ Constructor_アセットコードがnullまたは空の文字列の場合例外(assetCode: null)
✅ Constructor_アセットタイプが未知の場合例外

✅ Dressca.UnitTests.ApplicationCore.Assets.AssetTypesTest

✅ IsSupportedAssetType_アセットタイプがnullまたは空の文字列の場合(assetType: " ")
✅ IsSupportedAssetType_アセットタイプがnullまたは空の文字列の場合(assetType: "")
✅ IsSupportedAssetType_アセットタイプがnullまたは空の文字列の場合(assetType: null)
✅ IsSupportedAssetType_アセットタイプが定義済みの場合(assetType: "png")

✅ Dressca.UnitTests.ApplicationCore.Baskets.BasketApplicationServiceTest

✅ AddItemToBasketAsync_買い物かごへの商品追加処理で買い物かごが見つからない場合は業務例外が発生する
✅ AddItemToBasketAsync_買い物かごへの商品追加処理はリポジトリのGetAsyncを1度だけ呼出す
✅ AddItemToBasketAsync_買い物かごへの商品追加処理はリポジトリのUpdateAsyncを1度だけ呼出す
✅ AddItemToBasketAsync_買い物かごへの商品追加処理後に数量が0となる場合買い物かごアイテムは削除される
✅ DeleteBasketAsync_買い物かごの削除処理で買い物かごが見つからない場合は業務例外が発生する
✅ DeleteBasketAsync_買い物かごの削除処理はリポジトリのGetWithBasketItemsを1度だけ呼出す
✅ DeleteBasketAsync_買い物かごの削除処理はリポジトリのRemoveAsyncを1度だけ呼出す
✅ GetOrCreateBasketForUserAsync_買い物かごが取得できたときはリポジトリのAddAsyncを呼び出さない
✅ GetOrCreateBasketForUserAsync_買い物かごの取得処理で購入者Idがnullまたは空白なら例外が発生する(nullOrEmptyBuyerId: "   ")
✅ GetOrCreateBasketForUserAsync_買い物かごの取得処理で購入者Idがnullまたは空白なら例外が発生する(nullOrEmptyBuyerId: "")
✅ GetOrCreateBasketForUserAsync_買い物かごの取得処理で購入者Idがnullまたは空白なら例外が発生する(nullOrEmptyBuyerId: null)
✅ GetOrCreateBasketForUserAsync_買い物かごの取得処理で購入者Idに対応する買い物かご情報が存在しない場合AddAsyncで生成した買い物かごを取得できる
✅ GetOrCreateBasketForUserAsync_買い物かごの取得処理で購入者Idに対応する買い物かご情報が存在しない場合買い物かごの作成処理としてリポジトリのAddAsyncを1度だけ呼出す
✅ GetOrCreateBasketForUserAsync_買い物かごの取得処理で購入者Idに対応する買い物かご情報が存在しない場合買い物かごの作成処理としてリポジトリのGetWithBasketItemsを1度だけ呼出す
✅ GetOrCreateBasketForUserAsync_買い物かごの取得処理はリポジトリのGetWithBasketItemsから取得した買い物かごの情報を返す
✅ GetOrCreateBasketForUserAsync_買い物かごの取得処理はリポジトリのGetWithBasketItemsを1度だけ呼出す
✅ SetQuantitiesAsync_数量の設定処理で数量パラメータがnullならArgumentNullExceptionが発生する
✅ SetQuantitiesAsync_数量の設定処理で買い物かごが見つからないなら業務例外が発生する
✅ SetQuantitiesAsync_数量の設定処理はリポジトリのUpdateAsyncを1度だけ呼出す
✅ SetQuantitiesAsync_買い物かごに存在しない商品を指定しても買い物かごには追加されない
✅ SetQuantitiesAsync_買い物かごに存在する商品を指定すると買い物かごの商品数が更新される

✅ Dressca.UnitTests.ApplicationCore.Baskets.BasketItemTest

✅ Basket_買い物かごのナビゲーションプロパティが初期化されていない場合例外
✅ GetSubTotal_買い物かごアイテムの小計額は単価と数量の積になる

✅ Dressca.UnitTests.ApplicationCore.Baskets.BasketTest

✅ AddItem_商品の数量を加減算して0未満にはできない(firstQuantity: 10, additionalQuantity: -11)
✅ AddItem_商品の数量を加減算して0未満にはできない(firstQuantity: 10, additionalQuantity: 2147483647)
✅ AddItem_商品を1つ追加できる(quantity: 0)
✅ AddItem_商品を1つ追加できる(quantity: 1)
✅ AddItem_商品を1つ追加できる(quantity: 10)
✅ AddItem_数量は0未満にできない
✅ AddItem_複数の商品を追加できる
✅ AddItem_買い物かご内の商品の数量を加算しても買い物かご内の商品の種類が変わらない
✅ AddItem_買い物かご内の商品の数量を加算できる
✅ AddItem_買い物かご内の商品の数量を減算しても商品が買い物かご内に残る(firstQuantity: 10, additionalQuantity: -1)
✅ AddItem_買い物かご内の商品の数量を減算しても商品が買い物かご内に残る(firstQuantity: 10, additionalQuantity: -10)
✅ AddItem_買い物かご内の商品の数量を減算できる(firstQuantity: 10, additionalQuantity: -1)
✅ AddItem_買い物かご内の商品の数量を減算できる(firstQuantity: 10, additionalQuantity: -10)
✅ Constructor_正しくインスタンス化できる
✅ Constructor_買い物かごの購入者Idはnullにできない
✅ GetAccount_買い物かごアイテムの情報をもとにした会計情報を取得できる
✅ IsEmpty_買い物かごアイテムが空である
✅ IsEmpty_買い物かごにアイテムが存在する
✅ IsInCatalogItem_買い物かご内に存在しないカタログアイテムIdを渡す
✅ IsInCatalogItem_買い物かご内に存在するカタログアイテムIdを渡す
✅ RemoveEmptyItems_数量0の商品を買い物かごから削除しても数量0でない商品は残る
✅ RemoveEmptyItems_買い物かごにアイテムが1件も存在しないとき数量0のアイテムを除去する
✅ RemoveEmptyItems_買い物かごに数量0のアイテムが1件_数量1のアイテムが1件存在するとき_数量0のアイテムを除去する
✅ RemoveEmptyItems_買い物かごに数量0のアイテムが1件存在するとき数量0のアイテムを除去する
✅ RemoveEmptyItems_買い物かごに数量0のアイテムが2件存在するとき数量0のアイテムを除去する
✅ RemoveEmptyItems_買い物かごに数量1のアイテムが1件存在するとき数量0のアイテムを除去する
✅ RemoveEmptyItems_買い物かごに数量1のアイテムが2件存在するとき数量0のアイテムを除去する

✅ Dressca.UnitTests.ApplicationCore.Catalog.CatalogApplicationServiceTest

✅ GetBrandsAsync_ブランド取得処理はブランドリポジトリのGetAllを1回呼出す
✅ GetCatalogItemsAsync_カタログ取得処理はリポジトリのCountを1回呼出す
✅ GetCatalogItemsAsync_カタログ取得処理はリポジトリのFindを1回呼出す
✅ GetCategoriesAsync_カテゴリ取得処理はカテゴリリポジトリのGetAllを1回呼出す

✅ Dressca.UnitTests.ApplicationCore.Catalog.CatalogBrandTest

✅ Constructor_ブランド名は必須(brandName: "   ")
✅ Constructor_ブランド名は必須(brandName: "")
✅ Constructor_ブランド名は必須(brandName: null)
✅ Constructor_正しくインスタンス化できる

✅ Dressca.UnitTests.ApplicationCore.Catalog.CatalogCategoryTest

✅ Constructor_カテゴリ名は必須(categoryName: "   ")
✅ Constructor_カテゴリ名は必須(categoryName: "")
✅ Constructor_カテゴリ名は必須(categoryName: null)
✅ Constructor_正しくインスタンス化できる

✅ Dressca.UnitTests.ApplicationCore.Catalog.CatalogDomainServiceTest

✅ ExistsAllAsync_カタログアイテムIdが1件も存在しない場合
✅ ExistsAllAsync_カタログアイテムIdがすべて存在する場合
✅ ExistsAllAsync_カタログアイテムIdが一部だけ存在する場合

✅ Dressca.UnitTests.ApplicationCore.Catalog.CatalogItemAssetTest

✅ CatalogItem_カタログアイテムが初期化されていない場合例外
✅ Constructor_アセットコードがnullまたは空の文字列の場合例外(assetCode: " ")
✅ Constructor_アセットコードがnullまたは空の文字列の場合例外(assetCode: "")
✅ Constructor_アセットコードがnullまたは空の文字列の場合例外(assetCode: null)

✅ Dressca.UnitTests.ApplicationCore.Catalog.CatalogItemTest

✅ Constructor_正しくインスタンス化できる

✅ Dressca.UnitTests.ApplicationCore.Ordering.AddressTest

✅ Constructor_字がnullの場合例外
✅ Constructor_市区町村がnullの場合例外
✅ Constructor_郵便番号がnullの場合例外
✅ Constructor_都道府県がnullの場合例外

✅ Dressca.UnitTests.ApplicationCore.Ordering.CatalogItemOrderedTest

✅ Constructor_カタログアイテムIdが0以下の場合例外
✅ Constructor_製品コードがnullまたは空の文字列の場合例外(productCode: " ")
✅ Constructor_製品コードがnullまたは空の文字列の場合例外(productCode: "")
✅ Constructor_製品コードがnullまたは空の文字列の場合例外(productCode: null)
✅ Constructor_製品名がnullまたは空の文字列の場合例外(productName: " ")
✅ Constructor_製品名がnullまたは空の文字列の場合例外(productName: "")
✅ Constructor_製品名がnullまたは空の文字列の場合例外(productName: null)

✅ Dressca.UnitTests.ApplicationCore.Ordering.OrderApplicationServiceTest

✅ CreateOrderAsync_注文作成処理で指定した買い物かごが存在しない場合は業務例外が発生する
✅ CreateOrderAsync_注文作成処理で指定した買い物かごが空の場合は業務例外が発生する
✅ CreateOrderAsync_注文作成処理は注文リポジトリのAddを1回呼出す
✅ GetOrderAsync_注文リポジトリから取得した情報と指定した購入者IDが合致する場合注文情報を取得できる
✅ GetOrderAsync_注文リポジトリから取得した情報と指定した購入者IDが異なる場合例外になる
✅ GetOrderAsync_注文リポジトリから注文情報を取得できない場合例外になる

✅ Dressca.UnitTests.ApplicationCore.Ordering.OrderItemAssetTest

✅ Constructor_アセットコードがnullまたは空の文字列の場合例外(assetCode: " ")
✅ Constructor_アセットコードがnullまたは空の文字列の場合例外(assetCode: "")
✅ Constructor_アセットコードがnullまたは空の文字列の場合例外(assetCode: null)
✅ OrderItem_注文アイテムが初期化されていない場合例外

✅ Dressca.UnitTests.ApplicationCore.Ordering.OrderItemTest

✅ AddAssets_注文アイテムアセットにnullを追加しようとすると例外
✅ AddAssets_注文アイテムアセットに追加した情報が取得できる
✅ Constructor_注文されたカタログアイテムがnullの場合例外
✅ GetSubTotal_注文アイテムの小計を取得できる
✅ Order_注文情報が初期化されていない場合例外

✅ Dressca.UnitTests.ApplicationCore.Ordering.OrderTest

✅ Constructor_住所は必須
✅ Constructor_正しくインスタンス化できる
✅ Constructor_注文アイテムは必須(emptyOrderItems: [])
✅ Constructor_注文アイテムは必須(emptyOrderItems: null)
✅ Constructor_購入者Idは必須(buyerId: "   ")
✅ Constructor_購入者Idは必須(buyerId: "")
✅ Constructor_購入者Idは必須(buyerId: null)
✅ ConsumptionTax_商品の消費税額が正しく計算できる
✅ DeliveryCharge_商品の送料が正しく計算できる
✅ TotalItemsPrice_商品の税抜き合計金額が正しく計算できる
✅ TotalPrice_商品の税込み合計金額が正しく計算できる

✅ Dressca.UnitTests.ApplicationCore.Ordering.ShipToTest

✅ Constructor_住所がnullの場合例外
✅ Constructor_宛名がnullの場合例外

✅ Dressca.UnitTests.SystemCommon.BusinessErrorCollectionTest

✅ AddOrMerge_nullを追加しようとすると例外
✅ AddOrMerge_コレクションに追加していないエラーコードのデータは追加される
✅ AddOrMerge_コレクションに追加済みのエラーコードのデータはマージされる
✅ ToString_業務エラーのエラーコードとエラーメッセージがすべてJSON形式に変換される

✅ Dressca.UnitTests.SystemCommon.BusinessErrorTest

✅ AddErrorMessage_nullを追加すると空文字が追加される
✅ AddErrorMessage_エラーメッセージを追加できる
✅ Constructor_引数ありコンストラクターを使用するとエラーコードは指定した値になる
✅ Constructor_引数ありコンストラクターを使用するとエラーメッセージリストは指定した値になる
✅ Constructor_引数なしコンストラクターを使用するとエラーコードは空文字になる
✅ Constructor_引数なしコンストラクターを使用するとエラーメッセージリストは空リストになる
✅ ToString_エラーコードがキーでエラーメッセージのリストが値のJSON形式に変換される
✅ ToString_エラーコードが未設定の場合キーが空文字のJSON形式に変換される

✅ Dressca.UnitTests.SystemCommon.BusinessExceptionTest

✅ AddOrMergeError_nullを追加しようとすると例外
✅ GetErrors_エラーメッセージ単位で業務エラーの情報を取得できる
✅ ToString_業務エラーのリストが文字列化される

✅ Dressca.UnitTests.SystemCommon.ObjectExtensionsTest

✅ ThrowIfNull_Nullableな値型の値がnullの場合例外
✅ ThrowIfNull_参照型の値がnullの場合例外

✅ Dressca.UnitTests.Web.Assets.AssetExtensionsTest

✅ GetContentType_アセットがnullの場合例外
✅ GetContentType_アセットタイプがPNGの場合

✅ Dressca.UnitTests.Web.Baskets.HttpContextExtensionsTest

✅ GetBuyerId_購入者IdがGuidの文字列ではない場合新たにGuid形式の購入者Idが発行される(itemValue: "")
✅ GetBuyerId_購入者IdがGuidの文字列ではない場合新たにGuid形式の購入者Idが発行される(itemValue: "not-guid-value")
✅ GetBuyerId_購入者IdがGuidの文字列ではない場合新たにGuid形式の購入者Idが発行される(itemValue: null)
✅ GetBuyerId_購入者IdがGuidの文字列の場合設定されている値を取得できる
✅ GetBuyerId_購入者IdがHttpContextに存在しない場合新たにGuid形式の購入者Idが発行される
✅ GetBuyerId_購入者Idが文字列型ではない場合新たにGuid形式の購入者Idが発行される
✅ SetBuyerId_購入者Idを上書きできる
✅ SetBuyerId_購入者Idを新たに追加できる

✅ Dressca.UnitTests.Web.Runtime.BusinessExceptionDevelopmentFilterTest

✅ OnException_業務エラーの情報がActionResultの値に設定される
✅ OnException_業務例外のスタックトレースがdetailに設定されている

✅ Dressca.UnitTests.Web.Runtime.BusinessExceptionFilterTest

✅ OnException_業務エラーの情報がActionResultの値に設定される
✅ OnException_業務例外のスタックトレースがdetailに設定されていない

Annotations

Check failure on line 34 in samples/Dressca/dressca-backend/tests/Dressca.IntegrationTest/CustomWebApplicationFactory.cs

See this annotation in the file changed.

@github-actions github-actions / Test results

Dressca.IntegrationTest.DatabaseHealthCheckTest ► DatabaseConnectionTest

Failed test found in:
  samples/Dressca/dressca-backend/tests/Dressca.IntegrationTest/TestResults/_fv-az452-277_2023-11-07_04_58_10.trx
Error:
  Microsoft.Data.SqlClient.SqlException : A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 0 - Success)
Raw output
Microsoft.Data.SqlClient.SqlException : A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 0 - Success)
   at Microsoft.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
   at Microsoft.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
   at Microsoft.Data.SqlClient.TdsParserStateObject.ThrowExceptionAndWarning(Boolean callerHasConnectionLock, Boolean asyncClose)
   at Microsoft.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
   at Microsoft.Data.SqlClient.TdsParserStateObject.ReadSniSyncOverAsync()
   at Microsoft.Data.SqlClient.TdsParserStateObject.TryReadNetworkPacket()
   at Microsoft.Data.SqlClient.TdsParser.ConsumePreLoginHandshake(Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean& marsCapable, Boolean& fedAuthRequired)
   at Microsoft.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover, SqlAuthenticationMethod authType)
   at Microsoft.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover)
   at Microsoft.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout)
   at Microsoft.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance)
   at Microsoft.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, Boolean applyTransientFaultHandling, String accessToken, DbConnectionPool pool)
   at Microsoft.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
   at Microsoft.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions)
   at Microsoft.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
   at Microsoft.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection)
   at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   at Microsoft.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
   at Microsoft.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
   at Microsoft.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   at Microsoft.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   at Microsoft.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry, SqlConnectionOverrides overrides)
   at Microsoft.Data.SqlClient.SqlConnection.Open(SqlConnectionOverrides overrides)
   at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerConnection.OpenDbConnection(Boolean errorsExpected)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternal(Boolean errorsExpected)
   at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(Boolean errorsExpected)
   at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.<>c__DisplayClass18_0.<Exists>b__0(DateTime giveUp)
   at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.<>c__DisplayClass12_0`2.<Execute>b__0(DbContext c, TState s)
   at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.Execute[TState,TResult](TState state, Func`3 operation, Func`3 verifySucceeded)
   at Microsoft.EntityFrameworkCore.ExecutionStrategyExtensions.Execute[TState,TResult](IExecutionStrategy strategy, TState state, Func`2 operation, Func`2 verifySucceeded)
   at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.Exists(Boolean retryOnNotExists)
   at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerDatabaseCreator.Exists()
   at Microsoft.EntityFrameworkCore.Storage.RelationalDatabaseCreator.EnsureCreated()
   at Microsoft.EntityFrameworkCore.Infrastructure.DatabaseFacade.EnsureCreated()
   at Dressca.IntegrationTest.CustomWebApplicationFactory`1.<>c.<ConfigureWebHost>b__0_0(IServiceCollection services) in /home/runner/work/maris/maris/samples/Dressca/dressca-backend/tests/Dressca.IntegrationTest/CustomWebApplicationFactory.cs:line 34
   at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>c__DisplayClass10_0.<ConfigureServices>b__0(WebHostBuilderContext context, IServiceCollection services)
   at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>c__DisplayClass11_0.<ConfigureServices>b__0(HostBuilderContext context, IServiceCollection builder)
   at Microsoft.Extensions.Hosting.HostBuilder.CreateServiceProvider()
   at Microsoft.Extensions.Hosting.HostBuilder.Build()
   at Microsoft.AspNetCore.Builder.WebApplicationBuilder.Build()
   at Program.<Main>$(String[] args) in /home/runner/work/maris/maris/samples/Dressca/dressca-backend/src/Dressca.Web/Program.cs:line 78
--- End of stack trace from previous location ---
   at Microsoft.Extensions.Hosting.HostFactoryResolver.HostingListener.CreateHost()
   at Microsoft.Extensions.Hosting.HostFactoryResolver.<>c__DisplayClass10_0.<ResolveHostFactory>b__0(String[] args)
   at Microsoft.AspNetCore.Mvc.Testing.DeferredHostBuilder.Build()
   at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateHost(IHostBuilder builder)
   at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.ConfigureHostBuilder(IHostBuilder hostBuilder)
   at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.EnsureServer()
   at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateDefaultClient(DelegatingHandler[] handlers)
   at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateDefaultClient(Uri baseAddress, DelegatingHandler[] handlers)
   at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateClient(WebApplicationFactoryClientOptions options)
   at Microsoft.AspNetCore.Mvc.Testing.WebApplicationFactory`1.CreateClient()
   at Dressca.IntegrationTest.DatabaseHealthCheckTest.DatabaseConnectionTest() in /home/runner/work/maris/maris/samples/Dressca/dressca-backend/tests/Dressca.IntegrationTest/DatabaseHealthCheckTest.cs:line 19
--- End of stack trace from previous location ---