public async Task VerifyUserAgentWithFeatures(bool useMacOs) { this.SetEnvironmentInformation(useMacOs); const string suffix = " UserApplicationName/1.0"; string features = Convert.ToString((int)CosmosClientOptionsFeatures.AllowBulkExecution, 2).PadLeft(8, '0'); using (CosmosClient client = TestCommon.CreateCosmosClient(builder => builder.WithApplicationName(suffix).WithBulkExecution(true))) { Cosmos.UserAgentContainer userAgentContainer = client.ClientOptions.GetConnectionPolicy().UserAgentContainer; string userAgentString = userAgentContainer.UserAgent; Assert.IsTrue(userAgentString.Contains(suffix)); Assert.IsTrue(userAgentString.Contains($"|F {features}")); if (useMacOs) { Assert.IsTrue(userAgentString.Contains("Darwin 18.0.0")); } Cosmos.Database db = await client.CreateDatabaseIfNotExistsAsync(Guid.NewGuid().ToString()); Assert.IsNotNull(db); await db.DeleteAsync(); } using (CosmosClient client = TestCommon.CreateCosmosClient(builder => builder.WithApplicationName(suffix).WithBulkExecution(false))) { Cosmos.UserAgentContainer userAgentContainer = client.ClientOptions.GetConnectionPolicy().UserAgentContainer; string userAgentString = userAgentContainer.UserAgent; Assert.IsTrue(userAgentString.Contains(suffix)); Assert.IsFalse(userAgentString.Contains($"|F {features}")); } }
public async Task ValidateUserAgentHeaderWithMacOs(bool useMacOs) { const string suffix = " UserApplicationName/1.0"; CosmosClientOptions clientOptions = this.SetEnvironmentInformation(useMacOs); clientOptions.ApplicationName = suffix; using (CosmosClient client = TestCommon.CreateCosmosClient(clientOptions)) { Cosmos.UserAgentContainer userAgentContainer = client.ClientOptions.GetConnectionPolicy(client.ClientId).UserAgentContainer; string userAgentString = userAgentContainer.UserAgent; Assert.IsTrue(userAgentString.Contains(suffix)); if (useMacOs) { Assert.IsTrue(userAgentString.Contains("Darwin 18.0.0")); } Cosmos.Database db = await client.CreateDatabaseIfNotExistsAsync(Guid.NewGuid().ToString()); Assert.IsNotNull(db); await db.DeleteAsync(); } }
private string GetClientIdFromCosmosClient(CosmosClient client) { Cosmos.UserAgentContainer userAgentContainer = client.ClientOptions.GetConnectionPolicy(client.ClientId).UserAgentContainer; string userAgentString = userAgentContainer.UserAgent; string clientId = userAgentString.Split('|')[2]; return(clientId); }
public void ValidateCustomUserAgentContainer() { const string suffix = " MyCustomUserAgent/1.0"; UserAgentContainer userAgentContainer = new Cosmos.UserAgentContainer(); userAgentContainer.Suffix = suffix; string expectedUserAgent = new Cosmos.UserAgentContainer().BaseUserAgent + suffix; Assert.AreEqual(expectedUserAgent, userAgentContainer.UserAgent); byte[] expectedUserAgentUTF8 = Encoding.UTF8.GetBytes(expectedUserAgent); CollectionAssert.AreEqual(expectedUserAgentUTF8, userAgentContainer.UserAgentUTF8); }
public void ValidateCustomUserAgentHeader() { const string suffix = " MyCustomUserAgent/1.0"; ConnectionPolicy policy = new ConnectionPolicy(); policy.UserAgentSuffix = suffix; var expectedUserAgent = new Cosmos.UserAgentContainer().BaseUserAgent + suffix; Assert.AreEqual(expectedUserAgent, policy.UserAgentContainer.UserAgent); byte[] expectedUserAgentUTF8 = Encoding.UTF8.GetBytes(expectedUserAgent); CollectionAssert.AreEqual(expectedUserAgentUTF8, policy.UserAgentContainer.UserAgentUTF8); }
public void VerifyUserAgentContent() { EnvironmentInformation envInfo = new EnvironmentInformation(); Cosmos.UserAgentContainer userAgentContainer = new Cosmos.UserAgentContainer(clientId: 0); string serialization = userAgentContainer.UserAgent; Assert.IsTrue(serialization.Contains(envInfo.ProcessArchitecture)); string[] values = serialization.Split('|'); Assert.AreEqual($"cosmos-netstandard-sdk/{envInfo.ClientVersion}", values[0]); Assert.AreEqual(envInfo.DirectVersion, values[1]); Assert.AreEqual("0", values[2]); Assert.AreEqual(envInfo.ProcessArchitecture, values[3]); Assert.AreEqual(envInfo.OperatingSystem, values[4]); Assert.AreEqual(envInfo.RuntimeFramework, values[5]); }
public void UserAgentContainsEnvironmentInformation() { EnvironmentInformation environmentInformation = new EnvironmentInformation(); string expectedValue = "cosmos-netstandard-sdk/" + environmentInformation.ClientVersion; CosmosClientOptions cosmosClientOptions = new CosmosClientOptions(); string userAgentSuffix = "testSuffix"; cosmosClientOptions.ApplicationName = userAgentSuffix; Assert.AreEqual(userAgentSuffix, cosmosClientOptions.ApplicationName); Cosmos.UserAgentContainer userAgentContainer = cosmosClientOptions.CreateUserAgentContainerWithFeatures(clientId: 0); Assert.AreEqual(userAgentSuffix, userAgentContainer.Suffix); Assert.IsTrue(userAgentContainer.UserAgent.StartsWith(expectedValue)); Assert.IsTrue(userAgentContainer.UserAgent.EndsWith(userAgentSuffix)); ConnectionPolicy connectionPolicy = cosmosClientOptions.GetConnectionPolicy(clientId: 0); Assert.AreEqual(userAgentSuffix, connectionPolicy.UserAgentSuffix); Assert.IsTrue(connectionPolicy.UserAgentContainer.UserAgent.StartsWith(expectedValue)); Assert.IsTrue(connectionPolicy.UserAgentContainer.UserAgent.EndsWith(userAgentSuffix)); }
public void VerifyUserAgentContent(bool useMacOs) { this.SetEnvironmentInformation(useMacOs); EnvironmentInformation envInfo = new EnvironmentInformation(); Cosmos.UserAgentContainer userAgentContainer = new Cosmos.UserAgentContainer(); string serialization = userAgentContainer.UserAgent; Assert.IsTrue(serialization.Contains(envInfo.ProcessArchitecture)); string[] values = serialization.Split('|'); Assert.AreEqual($"cosmos-netstandard-sdk/{envInfo.ClientVersion}", values[0]); Assert.AreEqual(envInfo.DirectVersion, values[1]); Assert.AreEqual(envInfo.ClientId.Length, values[2].Length); Assert.AreEqual(envInfo.ProcessArchitecture, values[3]); Assert.IsTrue(!string.IsNullOrWhiteSpace(values[4])); if (useMacOs) { Assert.AreEqual("Darwin 18.0.0 Darwin Kernel V", values[4]); } Assert.AreEqual(envInfo.RuntimeFramework, values[5]); }
public async Task VerifyUserAgentWithFeatures(bool setApplicationName, bool useMacOs) { this.SetEnvironmentInformation(useMacOs); const string suffix = " UserApplicationName/1.0"; CosmosClientOptionsFeatures featuresFlags = CosmosClientOptionsFeatures.NoFeatures; featuresFlags |= CosmosClientOptionsFeatures.AllowBulkExecution; featuresFlags |= CosmosClientOptionsFeatures.HttpClientFactory; string features = Convert.ToString((int)featuresFlags, 2).PadLeft(8, '0'); Action <Fluent.CosmosClientBuilder> applicationNameBuilder = (builder) => { if (setApplicationName) { builder.WithApplicationName(suffix); } }; using (CosmosClient client = TestCommon.CreateCosmosClient(builder => applicationNameBuilder(builder.WithBulkExecution(true).WithHttpClientFactory(() => new HttpClient())))) { Cosmos.UserAgentContainer userAgentContainer = client.ClientOptions.GetConnectionPolicy().UserAgentContainer; string userAgentString = userAgentContainer.UserAgent; if (setApplicationName) { Assert.IsTrue(userAgentString.Contains(suffix)); } else { Assert.IsFalse(userAgentString.Contains(suffix)); } Assert.IsTrue(userAgentString.Contains($"|F {features}")); if (useMacOs) { Assert.IsTrue(userAgentString.Contains("Darwin 18.0.0")); } Cosmos.Database db = await client.CreateDatabaseIfNotExistsAsync(Guid.NewGuid().ToString()); Assert.IsNotNull(db); await db.DeleteAsync(); } using (CosmosClient client = TestCommon.CreateCosmosClient(builder => applicationNameBuilder(builder))) { Cosmos.UserAgentContainer userAgentContainer = client.ClientOptions.GetConnectionPolicy().UserAgentContainer; string userAgentString = userAgentContainer.UserAgent; if (setApplicationName) { Assert.IsTrue(userAgentString.Contains(suffix)); } else { Assert.IsFalse(userAgentString.Contains(suffix)); } Assert.IsFalse(userAgentString.Contains($"|F {features}")); } }
public void VerifyDefaultUserAgentContainsRegionConfig() { UserAgentContainer userAgentContainer = new Cosmos.UserAgentContainer(clientId: 0); Assert.IsTrue(userAgentContainer.UserAgent.Contains("|NS|")); }