Skip to content

Commit

Permalink
Add 'Application Name' connection string option to the tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
bgrainger committed Jan 12, 2024
1 parent 2f95bb2 commit 64e4fc5
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 10 deletions.
22 changes: 14 additions & 8 deletions tests/MySqlConnector.Tests/Metrics/ConnectionsUsageTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,12 @@ namespace MySqlConnector.Tests.Metrics;
public class ConnectionsUsageTests : MetricsTestsBase
{
[Theory(Skip = MetricsSkip)]
[InlineData("DataSource|true|")]
[InlineData("DataSource|true|metrics-test")]
[InlineData("Plain|true")]
[InlineData("DataSource|true||")]
[InlineData("DataSource|true||app-name")]
[InlineData("DataSource|true|pool-name|")]
[InlineData("DataSource|true|pool-name|app-name")]
[InlineData("Plain|true|")]
[InlineData("Plain|true|app-name")]
public void ConnectionsWithPoolsHaveMetrics(string connectionCreatorSpec)
{
using var connectionCreator = CreateConnectionCreator(connectionCreatorSpec, CreateConnectionStringBuilder());
Expand Down Expand Up @@ -60,9 +63,12 @@ public void ConnectionsWithPoolsHaveMetrics(string connectionCreatorSpec)
}

[Theory(Skip = MetricsSkip)]
[InlineData("DataSource|false|")]
[InlineData("DataSource|false|metrics-test")]
[InlineData("Plain|false")]
[InlineData("DataSource|false||")]
[InlineData("DataSource|false||app-name")]
[InlineData("DataSource|false|pool-name|")]
[InlineData("DataSource|false|pool-name|app-name")]
[InlineData("Plain|false|")]
[InlineData("Plain|false|app-name")]
public void ConnectionsWithoutPoolsHaveNoMetrics(string connectionCreatorSpec)
{
using var connectionCreator = CreateConnectionCreator(connectionCreatorSpec, CreateConnectionStringBuilder());
Expand Down Expand Up @@ -172,8 +178,8 @@ private IConnectionCreator CreateConnectionCreator(string spec, MySqlConnectionS
var parts = spec.Split('|');
return parts[0] switch
{
"DataSource" => new DataSourceConnectionCreator(bool.Parse(parts[1]), parts[2] == "" ? null : parts[2], connectionStringBuilder),
"Plain" => new PlainConnectionCreator(bool.Parse(parts[1]), connectionStringBuilder),
"DataSource" => new DataSourceConnectionCreator(bool.Parse(parts[1]), parts[2] == "" ? null : parts[2], parts[3] == "" ? null : parts[3], connectionStringBuilder),
"Plain" => new PlainConnectionCreator(bool.Parse(parts[1]), parts[2] == "" ? null : parts[2], connectionStringBuilder),
_ => throw new NotSupportedException(),
};
}
Expand Down
6 changes: 4 additions & 2 deletions tests/MySqlConnector.Tests/Metrics/IConnectionCreator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,10 @@ public interface IConnectionCreator : IDisposable

internal sealed class DataSourceConnectionCreator : IConnectionCreator
{
public DataSourceConnectionCreator(bool usePooling, string? poolName, MySqlConnectionStringBuilder connectionStringBuilder)
public DataSourceConnectionCreator(bool usePooling, string? poolName, string? applicationName, MySqlConnectionStringBuilder connectionStringBuilder)
{
connectionStringBuilder.Pooling = usePooling;
connectionStringBuilder.ApplicationName = applicationName;
m_dataSource = new MySqlDataSourceBuilder(connectionStringBuilder.ConnectionString)
.UseName(poolName)
.Build();
Expand All @@ -28,9 +29,10 @@ public DataSourceConnectionCreator(bool usePooling, string? poolName, MySqlConne

internal sealed class PlainConnectionCreator : IConnectionCreator
{
public PlainConnectionCreator(bool usePooling, MySqlConnectionStringBuilder connectionStringBuilder)
public PlainConnectionCreator(bool usePooling, string? applicationName, MySqlConnectionStringBuilder connectionStringBuilder)
{
connectionStringBuilder.Pooling = usePooling;
connectionStringBuilder.ApplicationName = applicationName;
m_connectionString = connectionStringBuilder.ConnectionString;
PoolName = connectionStringBuilder.GetConnectionString(includePassword: false);
}
Expand Down

0 comments on commit 64e4fc5

Please sign in to comment.