11namespace FSharp.Azure.Cosmos.Tests.Integration
22
33open System
4+ open System.Net
45open System.Net .Http
56open System.Net .Security
6- open System.Security .Cryptography .X509Certificates
77open System.Threading
88open System.Threading .Tasks
99
@@ -44,10 +44,8 @@ type TestBase () =
4444 member this.CancellationToken = this.TestContext.CancellationTokenSource.Token
4545
4646type DatabaseTestApplicationFactory ( testContext : TestContext ) =
47- let endpoint =
48- match Environment.GetEnvironmentVariable " COSMOS_ENDPOINT" with
49- | value when String.IsNullOrWhiteSpace value |> not -> value
50- | _ -> " https://127.0.0.1:8081"
47+ [<Literal>]
48+ let endpoint = " https://127.0.0.1:8081"
5149
5250 [<Literal>]
5351 let primaryKey =
@@ -57,68 +55,19 @@ type DatabaseTestApplicationFactory (testContext : TestContext) =
5755
5856 let databaseId = buildDatabaseId ()
5957
60- let endpointUri = Uri endpoint
61-
62- let isTlsDiagnosticsEnabled =
63- match Environment.GetEnvironmentVariable " COSMOS_TLS_DIAGNOSTICS" with
64- | null -> false
65- | value ->
66- value.Equals ( " 1" , StringComparison.OrdinalIgnoreCase)
67- || value.Equals ( " true" , StringComparison.OrdinalIgnoreCase)
68- || value.Equals ( " yes" , StringComparison.OrdinalIgnoreCase)
69-
7058 let isLocalEmulatorHost ( uri : Uri ) =
7159 uri.Host.Equals ( " localhost" , StringComparison.OrdinalIgnoreCase)
7260 || uri.Host.Equals ( " 127.0.0.1" , StringComparison.OrdinalIgnoreCase)
7361
74- let formatChainStatus ( chain : X509Chain ) =
75- match chain with
76- | null -> " <no chain>"
77- | chain when Array.isEmpty chain.ChainStatus -> " <empty chain status>"
78- | chain ->
79- chain.ChainStatus
80- |> Array.map ( fun status ->
81- let statusInformation =
82- match status.StatusInformation with
83- | null -> " "
84- | info -> info.Trim ()
85-
86- $" {status.Status}:{statusInformation}"
87- )
88- |> String.concat " ; "
89-
90- let logTlsDiagnostics ( requestUri : Uri ) ( certificate : X509Certificate2 ) ( chain : X509Chain ) ( errors : SslPolicyErrors ) =
91- if isTlsDiagnosticsEnabled then
92- let subject =
93- match certificate with
94- | null -> " <no certificate>"
95- | cert -> cert.Subject
96-
97- let issuer =
98- match certificate with
99- | null -> " <no issuer>"
100- | cert -> cert.Issuer
101-
102- Console.Error.WriteLine (
103- $" [Cosmos TLS] URI={requestUri}; Errors={errors}; Subject={subject}; Issuer={issuer}; ChainStatus={formatChainStatus chain}"
104- )
105-
10662 let createHttpClient () =
10763 let handler = new HttpClientHandler ()
10864
10965 handler.ServerCertificateCustomValidationCallback <-
110- ( fun request certificate chain errors ->
111- let requestUri =
112- match request.RequestUri with
113- | null -> endpointUri
114- | uri -> uri
115-
116- logTlsDiagnostics requestUri certificate chain errors
117-
118- if errors = SslPolicyErrors.None then
119- true
120- else
121- isLocalEmulatorHost requestUri
66+ ( fun request _ _ errors ->
67+ match request.RequestUri with
68+ | null -> errors = SslPolicyErrors.None
69+ | requestUri when errors = SslPolicyErrors.None -> true
70+ | requestUri -> isLocalEmulatorHost requestUri
12271 )
12372
12473 new HttpClient ( handler, true )
@@ -136,12 +85,8 @@ type DatabaseTestApplicationFactory (testContext : TestContext) =
13685 member _.Database = database
13786
13887 member _.InitializeAsync ( cancellationToken : CancellationToken ) : Task = task {
139- try
140- let! createdDatabase = client.CreateDatabaseIfNotExistsAsync ( databaseId, cancellationToken = cancellationToken)
141- database <- ValueSome createdDatabase.Database
142- with ex ->
143- Console.Error.WriteLine ( $" [Cosmos Initialize] Endpoint={endpoint}; DatabaseId={databaseId}; Error={ex.Message}" )
144- return raise ex
88+ let! createdDatabase = client.CreateDatabaseIfNotExistsAsync ( databaseId, cancellationToken = cancellationToken)
89+ database <- ValueSome createdDatabase.Database
14590 }
14691
14792 member _.CleanupAsync ( cancellationToken : CancellationToken ) : Task = task {
0 commit comments