From da552b25d6f26065484aec8e586cd26b4a54587b Mon Sep 17 00:00:00 2001 From: Alex Hemsath Date: Thu, 20 Jun 2024 15:13:18 -0700 Subject: [PATCH 1/5] Do not test non-async library methods for latest Elastic.Clients.Elasticsearch --- .../ElasticsearchElasticClient.cs | 62 ++++++++----------- .../Elasticsearch/ElasticsearchTests.cs | 45 +++++++++++--- 2 files changed, 64 insertions(+), 43 deletions(-) diff --git a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchElasticClient.cs b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchElasticClient.cs index 7ec16bc80..e28140a64 100644 --- a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchElasticClient.cs +++ b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchElasticClient.cs @@ -1,11 +1,13 @@ // Copyright 2020 New Relic, Inc. All rights reserved. // SPDX-License-Identifier: Apache-2.0 +// Non-async client methods are deprecated in the latest Elastic.Clients.Elasticsearch +#if !NET481_OR_GREATER && !NET8_0_OR_GREATER +#define SYNC_METHODS_OK +#endif + using System; -using System.Collections.Generic; -using System.Net; using System.Runtime.CompilerServices; -using System.Threading; using System.Threading.Tasks; using Elastic.Clients.Elasticsearch; using Elastic.Clients.Elasticsearch.Core.MSearch; @@ -13,11 +15,15 @@ using Elastic.Transport; using NewRelic.Agent.IntegrationTests.Shared; + namespace MultiFunctionApplicationHelpers.NetStandardLibraries.Elasticsearch { internal class ElasticsearchElasticClient : ElasticsearchTestClient { private ElasticsearchClient _client; + + private const string NonAsyncDeprecationMessage = "Non-async methods are deprecated in the latest Elasticsearch clients."; + protected override Uri Address { get @@ -51,23 +57,23 @@ public override void Connect() // This isn't necessary but will log the response, which can help troubleshoot if // you're having connection errors -#pragma warning disable CS0618 // obsolete usage is ok here - _client.Ping(); -#pragma warning restore CS0618 + _ = _client.PingAsync().Result; } [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining)] public override void Index() { +#if SYNC_METHODS_OK var record = FlightRecord.GetSample(); -#pragma warning disable CS0618 // Type or member is obsolete var response = _client.Index(record, (IndexName)IndexName); -#pragma warning restore CS0618 // Type or member is obsolete if (!response.IsSuccess()) { throw new Exception($"Response was not successful. {response.ElasticsearchServerError}"); } +#else + throw new NotImplementedException(NonAsyncDeprecationMessage); +#endif } [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining)] @@ -86,7 +92,7 @@ public override async Task IndexAsync() [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining)] public override void Search() { -#pragma warning disable CS0618 // obsolete usage is ok here +#if SYNC_METHODS_OK var response = _client.Search(s => s .Index(IndexName) .From(0) @@ -97,9 +103,10 @@ public override void Search() ) ) ); -#pragma warning restore CS0618 - AssertResponseIsSuccess(response); +#else + throw new NotImplementedException(NonAsyncDeprecationMessage); +#endif } [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining)] @@ -124,13 +131,15 @@ public override async Task SearchAsync() [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining)] public override void IndexMany() { +#if SYNC_METHODS_OK var records = FlightRecord.GetSamples(3); -#pragma warning disable CS0618 // Type or member is obsolete var response = _client.IndexMany(records, (IndexName)IndexName); -#pragma warning restore CS0618 // Type or member is obsolete AssertResponseIsSuccess(response); +#else + throw new NotImplementedException(NonAsyncDeprecationMessage); +#endif } [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining)] @@ -148,26 +157,11 @@ public override async Task IndexManyAsync() [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining)] public override void MultiSearch() { -#if NET8_0_OR_GREATER || NET481_OR_GREATER - var req = new MultiSearchRequest - { - Searches = - [ - new SearchRequestItem( - new MultisearchHeader { Indices = Infer.Index() }, - new MultisearchBody { From = 0, Query = new MatchAllQuery() } - ) - ] - }; -#pragma warning disable CS0618 // obsolete usage is ok here - var response = _client.MultiSearch(req); -#pragma warning restore CS0618 -#else -#pragma warning disable CS0618 // obsolete usage is ok here +#if SYNC_METHODS_OK var response = _client.MultiSearch(); -#pragma warning restore CS0618 -#endif - +#else + throw new NotImplementedException(NonAsyncDeprecationMessage); +#endif } [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining)] @@ -204,9 +198,7 @@ public override void GenerateError() var client = new ElasticsearchClient(settings); -#pragma warning disable CS0618 // obsolete usage is ok here - var response = client.Ping(); -#pragma warning restore CS0618 + var response = _ = client.PingAsync().Result; if (response.IsSuccess()) { diff --git a/tests/Agent/IntegrationTests/UnboundedIntegrationTests/Elasticsearch/ElasticsearchTests.cs b/tests/Agent/IntegrationTests/UnboundedIntegrationTests/Elasticsearch/ElasticsearchTests.cs index bb931ef81..4322e6546 100644 --- a/tests/Agent/IntegrationTests/UnboundedIntegrationTests/Elasticsearch/ElasticsearchTests.cs +++ b/tests/Agent/IntegrationTests/UnboundedIntegrationTests/Elasticsearch/ElasticsearchTests.cs @@ -33,6 +33,8 @@ protected enum ClientType const string IndexName = "flights"; + protected readonly bool _syncMethodsOk; + protected ElasticsearchTestsBase(TFixture fixture, ITestOutputHelper output, ClientType clientType) : base(fixture) { @@ -40,6 +42,17 @@ protected ElasticsearchTestsBase(TFixture fixture, ITestOutputHelper output, Cli _fixture.TestLogger = output; _clientType = clientType; + // non-async methods are deprecated in the latest Elastic.Clients.Elasticsearch versions + if (_clientType != ClientType.ElasticClients || + (_fixture.GetType() != typeof(ConsoleDynamicMethodFixtureCoreLatest) && _fixture.GetType() != typeof(ConsoleDynamicMethodFixtureFWLatest))) + { + _syncMethodsOk = true; + } + else + { + _syncMethodsOk = false; + } + _host = GetHostFromElasticServer(_clientType); _fixture.SetTimeout(TimeSpan.FromMinutes(2)); @@ -53,10 +66,14 @@ protected ElasticsearchTestsBase(TFixture fixture, ITestOutputHelper output, Cli _fixture.AddCommand($"ElasticsearchExerciser MultiSearchAsync"); // Sync operations - _fixture.AddCommand($"ElasticsearchExerciser Index"); - _fixture.AddCommand($"ElasticsearchExerciser Search"); - _fixture.AddCommand($"ElasticsearchExerciser IndexMany"); - _fixture.AddCommand($"ElasticsearchExerciser MultiSearch"); + if (_syncMethodsOk ) + { + _fixture.AddCommand($"ElasticsearchExerciser Index"); + _fixture.AddCommand($"ElasticsearchExerciser Search"); + _fixture.AddCommand($"ElasticsearchExerciser IndexMany"); + _fixture.AddCommand($"ElasticsearchExerciser MultiSearch"); + + } _fixture.AddCommand($"ElasticsearchExerciser GenerateError"); _fixture.AddActions @@ -85,25 +102,37 @@ protected ElasticsearchTestsBase(TFixture fixture, ITestOutputHelper output, Cli [Fact] public void Index() { - ValidateOperation("Index"); + if (_syncMethodsOk) + { + ValidateOperation("Index"); + } } [Fact] public void Search() { - ValidateOperation("Search"); + if (_syncMethodsOk) + { + ValidateOperation("Search"); + } } [Fact] public void IndexMany() { - ValidateOperation("IndexMany"); + if (_syncMethodsOk) + { + ValidateOperation("IndexMany"); + } } [Fact] public void MultiSearch() { - ValidateOperation("MultiSearch"); + if (_syncMethodsOk) + { + ValidateOperation("MultiSearch"); + } } [Fact] From f10d178168c0e87be7de694f6cc8c1ff37731f84 Mon Sep 17 00:00:00 2001 From: Alex Hemsath Date: Thu, 20 Jun 2024 15:23:39 -0700 Subject: [PATCH 2/5] Make GenerateError be async all the way down --- .../Elasticsearch/ElasticsearchElasticClient.cs | 4 ++-- .../Elasticsearch/ElasticsearchExerciser.cs | 4 ++-- .../Elasticsearch/ElasticsearchNestClient.cs | 6 +++--- .../Elasticsearch/ElasticsearchNetClient.cs | 6 +++--- .../Elasticsearch/ElasticsearchTestClient.cs | 4 ++-- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchElasticClient.cs b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchElasticClient.cs index e28140a64..3f3046a52 100644 --- a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchElasticClient.cs +++ b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchElasticClient.cs @@ -188,7 +188,7 @@ public override async Task MultiSearchAsync() } [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining)] - public override void GenerateError() + public override async Task GenerateError() { // This isn't the password, so connection should fail, but we won't get an error until the Ping var settings = new ElasticsearchClientSettings(Address) @@ -198,7 +198,7 @@ public override void GenerateError() var client = new ElasticsearchClient(settings); - var response = _ = client.PingAsync().Result; + var response = _ = await client.PingAsync(); if (response.IsSuccess()) { diff --git a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchExerciser.cs b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchExerciser.cs index 7aa5bcd25..ec7e1918f 100644 --- a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchExerciser.cs +++ b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchExerciser.cs @@ -1,4 +1,4 @@ -// Copyright 2020 New Relic, Inc. All rights reserved. +// Copyright 2020 New Relic, Inc. All rights reserved. // SPDX-License-Identifier: Apache-2.0 using System; @@ -94,6 +94,6 @@ public void SetClient(string clientType) [LibraryMethod] [Transaction] [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining)] - public void GenerateError() => _client.GenerateError(); + public async Task GenerateError() => await _client.GenerateError(); } } diff --git a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchNestClient.cs b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchNestClient.cs index 96ce98fd2..646b152d2 100644 --- a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchNestClient.cs +++ b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchNestClient.cs @@ -1,4 +1,4 @@ -// Copyright 2020 New Relic, Inc. All rights reserved. +// Copyright 2020 New Relic, Inc. All rights reserved. // SPDX-License-Identifier: Apache-2.0 using System; @@ -176,7 +176,7 @@ public override async Task MultiSearchAsync() } [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining)] - public override void GenerateError() + public override async Task GenerateError() { // This isn't the password, so connection should fail, but we won't get an error until the Ping var settings = new ConnectionSettings(Address). @@ -186,7 +186,7 @@ public override void GenerateError() var client = new ElasticClient(settings); - var response = client.Ping(); + var response = await client.PingAsync(); if (response.IsValid) { throw new Exception($"Response was successful but we expected an error. {response.ServerError}"); diff --git a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchNetClient.cs b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchNetClient.cs index 9c821b4e0..bd1012ecd 100644 --- a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchNetClient.cs +++ b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchNetClient.cs @@ -1,4 +1,4 @@ -// Copyright 2020 New Relic, Inc. All rights reserved. +// Copyright 2020 New Relic, Inc. All rights reserved. // SPDX-License-Identifier: Apache-2.0 using System; @@ -210,7 +210,7 @@ public override async Task MultiSearchAsync() } [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining)] - public override void GenerateError() + public override async Task GenerateError() { // This isn't the password, so connection should fail, but we won't get an error until the Ping var settings = new ConnectionConfiguration(Address) @@ -219,7 +219,7 @@ public override void GenerateError() .RequestTimeout(TimeSpan.FromMinutes(2)); var client = new ElasticLowLevelClient(settings); - var response = client.Ping(); + var response = await client.PingAsync(); if (response.Success) { diff --git a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchTestClient.cs b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchTestClient.cs index f199d35f3..427190df0 100644 --- a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchTestClient.cs +++ b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchTestClient.cs @@ -1,4 +1,4 @@ -// Copyright 2020 New Relic, Inc. All rights reserved. +// Copyright 2020 New Relic, Inc. All rights reserved. // SPDX-License-Identifier: Apache-2.0 using System; @@ -46,7 +46,7 @@ public ElasticsearchTestClient() { } public abstract Task MultiSearchAsync(); - public abstract void GenerateError(); + public abstract Task GenerateError(); } public class FlightRecord From b674f6df8fe496d4c938ae101e2fe0851b122591 Mon Sep 17 00:00:00 2001 From: Alex Hemsath Date: Thu, 20 Jun 2024 15:34:57 -0700 Subject: [PATCH 3/5] Same thing for Connect --- .../Elasticsearch/ElasticsearchElasticClient.cs | 4 ++-- .../Elasticsearch/ElasticsearchExerciser.cs | 4 ++-- .../Elasticsearch/ElasticsearchNestClient.cs | 4 ++-- .../Elasticsearch/ElasticsearchNetClient.cs | 3 ++- .../Elasticsearch/ElasticsearchTestClient.cs | 2 +- 5 files changed, 9 insertions(+), 8 deletions(-) diff --git a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchElasticClient.cs b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchElasticClient.cs index 3f3046a52..cef3baaf0 100644 --- a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchElasticClient.cs +++ b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchElasticClient.cs @@ -47,7 +47,7 @@ protected override string Password } [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining)] - public override void Connect() + public override async Task Connect() { var settings = new ElasticsearchClientSettings(Address) .Authentication(new BasicAuthentication(Username, Password)). @@ -57,7 +57,7 @@ public override void Connect() // This isn't necessary but will log the response, which can help troubleshoot if // you're having connection errors - _ = _client.PingAsync().Result; + _ = await _client.PingAsync(); } [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining)] diff --git a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchExerciser.cs b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchExerciser.cs index ec7e1918f..c01a3749e 100644 --- a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchExerciser.cs +++ b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchExerciser.cs @@ -27,7 +27,7 @@ private enum ClientType /// Sets the library to use for further actions /// /// ElasticsearchNet, NEST, or ElasticClients - public void SetClient(string clientType) + public async Task SetClient(string clientType) { if (Enum.TryParse(clientType, out ClientType client)) { @@ -44,7 +44,7 @@ public void SetClient(string clientType) _client = new ElasticsearchElasticClient(); break; } - _client.Connect(); + await _client.Connect(); } else { diff --git a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchNestClient.cs b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchNestClient.cs index 646b152d2..c4daea47f 100644 --- a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchNestClient.cs +++ b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchNestClient.cs @@ -36,7 +36,7 @@ protected override string Password } [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining)] - public override void Connect() + public override async Task Connect() { var settings = new ConnectionSettings(Address). BasicAuthentication(Username,Password). @@ -46,7 +46,7 @@ public override void Connect() // This isn't necessary but will log the response, which can help troubleshoot if // you're having connection errors - _client.Ping(); + await _client.PingAsync(); } [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining)] diff --git a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchNetClient.cs b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchNetClient.cs index bd1012ecd..3e0c5def4 100644 --- a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchNetClient.cs +++ b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchNetClient.cs @@ -36,13 +36,14 @@ protected override string Password } [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining)] - public override void Connect() + public override async Task Connect() { var settings = new ConnectionConfiguration(Address) .BasicAuthentication(Username, Password) .RequestTimeout(TimeSpan.FromMinutes(2)); _client = new ElasticLowLevelClient(settings); + await _client.PingAsync(); } [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining)] diff --git a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchTestClient.cs b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchTestClient.cs index 427190df0..4f7a4ae93 100644 --- a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchTestClient.cs +++ b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchTestClient.cs @@ -28,7 +28,7 @@ protected abstract string Password public ElasticsearchTestClient() { } - public abstract void Connect(); + public abstract Task Connect(); public abstract void Index(); From 627e08c44989b27d07fe8f6d1e6a3d9a44f71da2 Mon Sep 17 00:00:00 2001 From: Alex Hemsath Date: Thu, 20 Jun 2024 15:44:47 -0700 Subject: [PATCH 4/5] Make it clear that non-async test methods are being skipped in latest Elastic.Clients.Elasticsearch --- .../Elasticsearch/ElasticsearchTests.cs | 33 ++++++++----------- .../UnboundedIntegrationTests.csproj | 3 +- 2 files changed, 15 insertions(+), 21 deletions(-) diff --git a/tests/Agent/IntegrationTests/UnboundedIntegrationTests/Elasticsearch/ElasticsearchTests.cs b/tests/Agent/IntegrationTests/UnboundedIntegrationTests/Elasticsearch/ElasticsearchTests.cs index 4322e6546..bbe256020 100644 --- a/tests/Agent/IntegrationTests/UnboundedIntegrationTests/Elasticsearch/ElasticsearchTests.cs +++ b/tests/Agent/IntegrationTests/UnboundedIntegrationTests/Elasticsearch/ElasticsearchTests.cs @@ -34,6 +34,7 @@ protected enum ClientType const string IndexName = "flights"; protected readonly bool _syncMethodsOk; + const string SyncMethodSkipReason = "Synchronous methods are deprecated in latest Elastic.Clients.Elasticsearch"; protected ElasticsearchTestsBase(TFixture fixture, ITestOutputHelper output, ClientType clientType) : base(fixture) @@ -99,40 +100,32 @@ protected ElasticsearchTestsBase(TFixture fixture, ITestOutputHelper output, Cli _fixture.Initialize(); } - [Fact] + [SkippableFact] public void Index() { - if (_syncMethodsOk) - { - ValidateOperation("Index"); - } + Skip.IfNot(_syncMethodsOk, SyncMethodSkipReason); + ValidateOperation("Index"); } - [Fact] + [SkippableFact] public void Search() { - if (_syncMethodsOk) - { - ValidateOperation("Search"); - } + Skip.IfNot(_syncMethodsOk, SyncMethodSkipReason); + ValidateOperation("Search"); } - [Fact] + [SkippableFact] public void IndexMany() { - if (_syncMethodsOk) - { - ValidateOperation("IndexMany"); - } + Skip.IfNot(_syncMethodsOk, SyncMethodSkipReason); + ValidateOperation("IndexMany"); } - [Fact] + [SkippableFact] public void MultiSearch() { - if (_syncMethodsOk) - { - ValidateOperation("MultiSearch"); - } + Skip.IfNot(_syncMethodsOk, SyncMethodSkipReason); + ValidateOperation("MultiSearch"); } [Fact] diff --git a/tests/Agent/IntegrationTests/UnboundedIntegrationTests/UnboundedIntegrationTests.csproj b/tests/Agent/IntegrationTests/UnboundedIntegrationTests/UnboundedIntegrationTests.csproj index fc24b8e8c..91ef2ffc3 100644 --- a/tests/Agent/IntegrationTests/UnboundedIntegrationTests/UnboundedIntegrationTests.csproj +++ b/tests/Agent/IntegrationTests/UnboundedIntegrationTests/UnboundedIntegrationTests.csproj @@ -1,4 +1,4 @@ - + NewRelic.Agent.UnboundedIntegrationTests NewRelic.Agent.UnboundedIntegrationTests @@ -58,6 +58,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive + From 0eff085536a60c7924834f0cc6ac3d1ef1b8c048 Mon Sep 17 00:00:00 2001 From: Alex Hemsath Date: Fri, 21 Jun 2024 11:10:13 -0700 Subject: [PATCH 5/5] PR feedback --- .../Elasticsearch/ElasticsearchElasticClient.cs | 6 +++--- .../Elasticsearch/ElasticsearchExerciser.cs | 4 ++-- .../Elasticsearch/ElasticsearchNestClient.cs | 4 ++-- .../Elasticsearch/ElasticsearchNetClient.cs | 4 ++-- .../Elasticsearch/ElasticsearchTestClient.cs | 4 ++-- .../Elasticsearch/ElasticsearchTests.cs | 6 +++--- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchElasticClient.cs b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchElasticClient.cs index cef3baaf0..24ea84ff1 100644 --- a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchElasticClient.cs +++ b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchElasticClient.cs @@ -47,7 +47,7 @@ protected override string Password } [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining)] - public override async Task Connect() + public override async Task ConnectAsync() { var settings = new ElasticsearchClientSettings(Address) .Authentication(new BasicAuthentication(Username, Password)). @@ -188,7 +188,7 @@ public override async Task MultiSearchAsync() } [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining)] - public override async Task GenerateError() + public override async Task GenerateErrorAsync() { // This isn't the password, so connection should fail, but we won't get an error until the Ping var settings = new ElasticsearchClientSettings(Address) @@ -198,7 +198,7 @@ public override async Task GenerateError() var client = new ElasticsearchClient(settings); - var response = _ = await client.PingAsync(); + var response = await client.PingAsync(); if (response.IsSuccess()) { diff --git a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchExerciser.cs b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchExerciser.cs index c01a3749e..2f6753f4d 100644 --- a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchExerciser.cs +++ b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchExerciser.cs @@ -44,7 +44,7 @@ public async Task SetClient(string clientType) _client = new ElasticsearchElasticClient(); break; } - await _client.Connect(); + await _client.ConnectAsync(); } else { @@ -94,6 +94,6 @@ public async Task SetClient(string clientType) [LibraryMethod] [Transaction] [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining)] - public async Task GenerateError() => await _client.GenerateError(); + public async Task GenerateErrorAsync() => await _client.GenerateErrorAsync(); } } diff --git a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchNestClient.cs b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchNestClient.cs index c4daea47f..fdc14fc72 100644 --- a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchNestClient.cs +++ b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchNestClient.cs @@ -36,7 +36,7 @@ protected override string Password } [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining)] - public override async Task Connect() + public override async Task ConnectAsync() { var settings = new ConnectionSettings(Address). BasicAuthentication(Username,Password). @@ -176,7 +176,7 @@ public override async Task MultiSearchAsync() } [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining)] - public override async Task GenerateError() + public override async Task GenerateErrorAsync() { // This isn't the password, so connection should fail, but we won't get an error until the Ping var settings = new ConnectionSettings(Address). diff --git a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchNetClient.cs b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchNetClient.cs index 3e0c5def4..b71df2304 100644 --- a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchNetClient.cs +++ b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchNetClient.cs @@ -36,7 +36,7 @@ protected override string Password } [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining)] - public override async Task Connect() + public override async Task ConnectAsync() { var settings = new ConnectionConfiguration(Address) .BasicAuthentication(Username, Password) @@ -211,7 +211,7 @@ public override async Task MultiSearchAsync() } [MethodImpl(MethodImplOptions.NoOptimization | MethodImplOptions.NoInlining)] - public override async Task GenerateError() + public override async Task GenerateErrorAsync() { // This isn't the password, so connection should fail, but we won't get an error until the Ping var settings = new ConnectionConfiguration(Address) diff --git a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchTestClient.cs b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchTestClient.cs index 4f7a4ae93..69cc21bff 100644 --- a/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchTestClient.cs +++ b/tests/Agent/IntegrationTests/SharedApplications/Common/MultiFunctionApplicationHelpers/NetStandardLibraries/Elasticsearch/ElasticsearchTestClient.cs @@ -28,7 +28,7 @@ protected abstract string Password public ElasticsearchTestClient() { } - public abstract Task Connect(); + public abstract Task ConnectAsync(); public abstract void Index(); @@ -46,7 +46,7 @@ public ElasticsearchTestClient() { } public abstract Task MultiSearchAsync(); - public abstract Task GenerateError(); + public abstract Task GenerateErrorAsync(); } public class FlightRecord diff --git a/tests/Agent/IntegrationTests/UnboundedIntegrationTests/Elasticsearch/ElasticsearchTests.cs b/tests/Agent/IntegrationTests/UnboundedIntegrationTests/Elasticsearch/ElasticsearchTests.cs index bbe256020..73c88b856 100644 --- a/tests/Agent/IntegrationTests/UnboundedIntegrationTests/Elasticsearch/ElasticsearchTests.cs +++ b/tests/Agent/IntegrationTests/UnboundedIntegrationTests/Elasticsearch/ElasticsearchTests.cs @@ -65,6 +65,7 @@ protected ElasticsearchTestsBase(TFixture fixture, ITestOutputHelper output, Cli _fixture.AddCommand($"ElasticsearchExerciser SearchAsync"); _fixture.AddCommand($"ElasticsearchExerciser IndexManyAsync"); _fixture.AddCommand($"ElasticsearchExerciser MultiSearchAsync"); + _fixture.AddCommand($"ElasticsearchExerciser GenerateErrorAsync"); // Sync operations if (_syncMethodsOk ) @@ -75,7 +76,6 @@ protected ElasticsearchTestsBase(TFixture fixture, ITestOutputHelper output, Cli _fixture.AddCommand($"ElasticsearchExerciser MultiSearch"); } - _fixture.AddCommand($"ElasticsearchExerciser GenerateError"); _fixture.AddActions ( @@ -153,9 +153,9 @@ public void MultiSearchAsync() } [Fact] - public void Error() + public void ErrorAsync() { - ValidateError("GenerateError"); + ValidateError("GenerateErrorAsync"); } private void ValidateError(string operationName)