Skip to content

Commit f9637a8

Browse files
authored
duplicate inherited tests in base class hierarchy, this fixes a bug in the jetBrains Rider/Resharper test runner that removes tests when you open the test file https://youtrack.jetbrains.com/issue/RIDER-19912 (#3418)
1 parent ff792a2 commit f9637a8

File tree

8 files changed

+120
-19
lines changed

8 files changed

+120
-19
lines changed

src/Tests/Tests/Aggregations/AggregationUsageTestBase.cs

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
using System;
2+
using System.Threading.Tasks;
3+
using Elastic.Xunit.XunitPlumbing;
24
using Elasticsearch.Net;
35
using Nest;
46
using Tests.Core.Client;
@@ -7,19 +9,29 @@
79
using Tests.Domain;
810
using Tests.Framework;
911
using Tests.Framework.Integration;
10-
using Tests.Framework.ManagedElasticsearch.Clusters;
11-
using Tests.Framework.ManagedElasticsearch.NodeSeeders;
1212
using static Nest.Infer;
13-
using Xunit;
1413

1514
namespace Tests.Aggregations
1615
{
1716
public abstract class AggregationUsageTestBase
1817
: ApiIntegrationTestBase<ReadOnlyCluster, ISearchResponse<Project>, ISearchRequest, SearchDescriptor<Project>, SearchRequest<Project>>
1918
{
20-
protected AggregationUsageTestBase(ReadOnlyCluster cluster, EndpointUsage usage) : base(cluster, usage)
21-
{
22-
}
19+
protected AggregationUsageTestBase(ReadOnlyCluster cluster, EndpointUsage usage) : base(cluster, usage) { }
20+
21+
// https://youtrack.jetbrains.com/issue/RIDER-19912
22+
[U] protected override Task HitsTheCorrectUrl() => base.HitsTheCorrectUrl();
23+
24+
[U] protected override Task UsesCorrectHttpMethod() => base.UsesCorrectHttpMethod();
25+
26+
[U] protected override void SerializesInitializer() => base.SerializesInitializer();
27+
28+
[U] protected override void SerializesFluent() => base.SerializesFluent();
29+
30+
[I] public override Task ReturnsExpectedStatusCode() => base.ReturnsExpectedResponse();
31+
32+
[I] public override Task ReturnsExpectedIsValid() => base.ReturnsExpectedIsValid();
33+
34+
[I] public override Task ReturnsExpectedResponse() => base.ReturnsExpectedResponse();
2335

2436
protected override LazyResponses ClientUsage() => Calls(
2537
fluent: (client, f) => client.Search<Project>(f),
@@ -74,5 +86,20 @@ public abstract class ProjectsOnlyAggregationUsageTestBase : AggregationUsageTes
7486
protected ProjectsOnlyAggregationUsageTestBase(ReadOnlyCluster cluster, EndpointUsage usage) : base(cluster, usage) { }
7587

7688
protected override Nest.Indices AgainstIndex => DefaultSeeder.ProjectsAliasFilter;
89+
90+
// https://youtrack.jetbrains.com/issue/RIDER-19912
91+
[U] protected override Task HitsTheCorrectUrl() => base.HitsTheCorrectUrl();
92+
93+
[U] protected override Task UsesCorrectHttpMethod() => base.UsesCorrectHttpMethod();
94+
95+
[U] protected override void SerializesInitializer() => base.SerializesInitializer();
96+
97+
[U] protected override void SerializesFluent() => base.SerializesFluent();
98+
99+
[I] public override Task ReturnsExpectedStatusCode() => base.ReturnsExpectedResponse();
100+
101+
[I] public override Task ReturnsExpectedIsValid() => base.ReturnsExpectedIsValid();
102+
103+
[I] public override Task ReturnsExpectedResponse() => base.ReturnsExpectedResponse();
77104
}
78105
}

src/Tests/Tests/Framework/EndpointTests/ApiIntegrationAgainstNewIndexTestBase.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
using System.Linq;
2+
using System.Threading.Tasks;
23
using Elastic.Managed.Ephemeral;
4+
using Elastic.Xunit.XunitPlumbing;
35
using Elasticsearch.Net;
46
using Nest;
57
using Tests.Core.Extensions;
@@ -28,5 +30,20 @@ protected override void IntegrationSetup(IElasticClient client, CallUniqueValues
2830
}
2931

3032
protected virtual ICreateIndexRequest CreateIndexSettings(CreateIndexDescriptor create) => create;
33+
34+
// https://youtrack.jetbrains.com/issue/RIDER-19912
35+
[U] protected override Task HitsTheCorrectUrl() => base.HitsTheCorrectUrl();
36+
37+
[U] protected override Task UsesCorrectHttpMethod() => base.UsesCorrectHttpMethod();
38+
39+
[U] protected override void SerializesInitializer() => base.SerializesInitializer();
40+
41+
[U] protected override void SerializesFluent() => base.SerializesFluent();
42+
43+
[I] public override Task ReturnsExpectedStatusCode() => base.ReturnsExpectedResponse();
44+
45+
[I] public override Task ReturnsExpectedIsValid() => base.ReturnsExpectedIsValid();
46+
47+
[I] public override Task ReturnsExpectedResponse() => base.ReturnsExpectedResponse();
3148
}
3249
}

src/Tests/Tests/Framework/EndpointTests/ApiIntegrationTestBase.cs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,22 @@ protected ApiIntegrationTestBase(TCluster cluster, EndpointUsage usage) : base(c
3333
public override IElasticClient Client => this.Cluster.Client;
3434
protected override TInitializer Initializer => Activator.CreateInstance<TInitializer>();
3535

36-
[I] public async Task ReturnsExpectedStatusCode() =>
36+
// https://youtrack.jetbrains.com/issue/RIDER-19912
37+
[U] protected override Task HitsTheCorrectUrl() => base.HitsTheCorrectUrl();
38+
39+
[U] protected override Task UsesCorrectHttpMethod() => base.UsesCorrectHttpMethod();
40+
41+
[U] protected override void SerializesInitializer() => base.SerializesInitializer();
42+
43+
[U] protected override void SerializesFluent() => base.SerializesFluent();
44+
45+
[I] public virtual async Task ReturnsExpectedStatusCode() =>
3746
await this.AssertOnAllResponses(r => r.ApiCall.HttpStatusCode.Should().Be(this.ExpectStatusCode));
3847

39-
[I] public async Task ReturnsExpectedIsValid() =>
48+
[I] public virtual async Task ReturnsExpectedIsValid() =>
4049
await this.AssertOnAllResponses(r => r.ShouldHaveExpectedIsValid(this.ExpectIsValid));
4150

42-
[I] public async Task ReturnsExpectedResponse() => await this.AssertOnAllResponses(ExpectResponse);
51+
[I] public virtual async Task ReturnsExpectedResponse() => await this.AssertOnAllResponses(ExpectResponse);
4352

4453
protected override Task AssertOnAllResponses(Action<TResponse> assert)
4554
{

src/Tests/Tests/Framework/EndpointTests/ApiTestBase.cs

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,14 @@ public abstract class ApiTestBase<TCluster, TResponse, TInterface, TDescriptor,
2626

2727
protected ApiTestBase(TCluster cluster, EndpointUsage usage) : base(cluster, usage) { }
2828

29-
[U] protected async Task HitsTheCorrectUrl() =>
30-
await this.AssertOnAllResponses(r => this.AssertUrl(r.ApiCall.Uri));
29+
[U] protected virtual async Task HitsTheCorrectUrl() => await this.AssertOnAllResponses(r => this.AssertUrl(r.ApiCall.Uri));
3130

32-
[U] protected async Task UsesCorrectHttpMethod() =>
33-
await this.AssertOnAllResponses(
34-
r => r.ApiCall.HttpMethod.Should().Be(this.HttpMethod,
35-
this.UniqueValues.CurrentView.GetStringValue()));
31+
[U] protected virtual async Task UsesCorrectHttpMethod() =>
32+
await this.AssertOnAllResponses(r => r.ApiCall.HttpMethod.Should().Be(this.HttpMethod, this.UniqueValues.CurrentView.GetStringValue()));
3633

37-
[U] protected void SerializesInitializer() => this.RoundTripsOrSerializes<TInterface>(this.Initializer);
34+
[U] protected virtual void SerializesInitializer() => this.RoundTripsOrSerializes<TInterface>(this.Initializer);
3835

39-
[U] protected void SerializesFluent() => this.RoundTripsOrSerializes(this.Fluent?.Invoke(NewDescriptor()));
36+
[U] protected virtual void SerializesFluent() => this.RoundTripsOrSerializes(this.Fluent?.Invoke(NewDescriptor()));
4037

4138
private void AssertUrl(Uri u) => u.PathEquals(this.UrlPath, this.UniqueValues.CurrentView.GetStringValue());
4239
}

src/Tests/Tests/Framework/EndpointTests/CanConnectTestBase.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1+
using System.Threading.Tasks;
12
using Elastic.Managed.Ephemeral;
3+
using Elastic.Xunit.XunitPlumbing;
24
using Elasticsearch.Net;
35
using FluentAssertions;
46
using Nest;
@@ -32,5 +34,20 @@ protected override void ExpectResponse(IRootNodeInfoResponse response)
3234
response.Tagline.Should().NotBeNullOrWhiteSpace();
3335
response.Name.Should().NotBeNullOrWhiteSpace();
3436
}
37+
38+
// https://youtrack.jetbrains.com/issue/RIDER-19912
39+
[U] protected override Task HitsTheCorrectUrl() => base.HitsTheCorrectUrl();
40+
41+
[U] protected override Task UsesCorrectHttpMethod() => base.UsesCorrectHttpMethod();
42+
43+
[U] protected override void SerializesInitializer() => base.SerializesInitializer();
44+
45+
[U] protected override void SerializesFluent() => base.SerializesFluent();
46+
47+
[I] public override Task ReturnsExpectedStatusCode() => base.ReturnsExpectedResponse();
48+
49+
[I] public override Task ReturnsExpectedIsValid() => base.ReturnsExpectedIsValid();
50+
51+
[I] public override Task ReturnsExpectedResponse() => base.ReturnsExpectedResponse();
3552
}
3653
}

src/Tests/Tests/Framework/EndpointTests/ConnectionErrorTestBase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ protected override LazyResponses ClientUsage() => Calls(
2525
request: (client, r) => client.RootNodeInfo(r),
2626
requestAsync: (client, r) => client.RootNodeInfoAsync(r)
2727
);
28-
28+
2929
protected override object ExpectJson { get; } = null;
3030

3131
public override IElasticClient Client => this.Cluster.Client;

src/Tests/Tests/Search/SearchUsageTestBase.cs

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
using Elasticsearch.Net;
1+
using System.Threading.Tasks;
2+
using Elastic.Xunit.XunitPlumbing;
3+
using Elasticsearch.Net;
24
using Nest;
35
using Tests.Core.ManagedElasticsearch.Clusters;
46
using Tests.Domain;
@@ -32,5 +34,21 @@ protected override LazyResponses ClientUsage() => Calls(
3234

3335
protected object ProjectFilterExpectedJson = new {term = new {type = new {value = Project.TypeName}}};
3436

37+
// https://youtrack.jetbrains.com/issue/RIDER-19912
38+
[U] protected override Task HitsTheCorrectUrl() => base.HitsTheCorrectUrl();
39+
40+
[U] protected override Task UsesCorrectHttpMethod() => base.UsesCorrectHttpMethod();
41+
42+
[U] protected override void SerializesInitializer() => base.SerializesInitializer();
43+
44+
[U] protected override void SerializesFluent() => base.SerializesFluent();
45+
46+
[I] public override Task ReturnsExpectedStatusCode() => base.ReturnsExpectedResponse();
47+
48+
[I] public override Task ReturnsExpectedIsValid() => base.ReturnsExpectedIsValid();
49+
50+
[I] public override Task ReturnsExpectedResponse() => base.ReturnsExpectedResponse();
51+
52+
3553
}
3654
}

src/Tests/Tests/XPack/MachineLearning/MachineLearningIntegrationTestBase.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Threading.Tasks;
23
using Elastic.Xunit.XunitPlumbing;
34
using Elasticsearch.Net;
45
using Nest;
@@ -19,6 +20,21 @@ public abstract class MachineLearningIntegrationTestBase<TResponse, TInterface,
1920
{
2021
protected MachineLearningIntegrationTestBase(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { }
2122

23+
// https://youtrack.jetbrains.com/issue/RIDER-19912
24+
[U] protected override Task HitsTheCorrectUrl() => base.HitsTheCorrectUrl();
25+
26+
[U] protected override Task UsesCorrectHttpMethod() => base.UsesCorrectHttpMethod();
27+
28+
[U] protected override void SerializesInitializer() => base.SerializesInitializer();
29+
30+
[U] protected override void SerializesFluent() => base.SerializesFluent();
31+
32+
[I] public override Task ReturnsExpectedStatusCode() => base.ReturnsExpectedResponse();
33+
34+
[I] public override Task ReturnsExpectedIsValid() => base.ReturnsExpectedIsValid();
35+
36+
[I] public override Task ReturnsExpectedResponse() => base.ReturnsExpectedResponse();
37+
2238
protected IPutJobResponse PutJob(IElasticClient client, string jobId)
2339
{
2440
var putJobResponse = client.PutJob<Metric>(jobId, f => f

0 commit comments

Comments
 (0)