Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 33 additions & 6 deletions src/Tests/Tests/Aggregations/AggregationUsageTestBase.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
using System;
using System.Threading.Tasks;
using Elastic.Xunit.XunitPlumbing;
using Elasticsearch.Net;
using Nest;
using Tests.Core.Client;
Expand All @@ -7,19 +9,29 @@
using Tests.Domain;
using Tests.Framework;
using Tests.Framework.Integration;
using Tests.Framework.ManagedElasticsearch.Clusters;
using Tests.Framework.ManagedElasticsearch.NodeSeeders;
using static Nest.Infer;
using Xunit;

namespace Tests.Aggregations
{
public abstract class AggregationUsageTestBase
: ApiIntegrationTestBase<ReadOnlyCluster, ISearchResponse<Project>, ISearchRequest, SearchDescriptor<Project>, SearchRequest<Project>>
{
protected AggregationUsageTestBase(ReadOnlyCluster cluster, EndpointUsage usage) : base(cluster, usage)
{
}
protected AggregationUsageTestBase(ReadOnlyCluster cluster, EndpointUsage usage) : base(cluster, usage) { }

// https://youtrack.jetbrains.com/issue/RIDER-19912
[U] protected override Task HitsTheCorrectUrl() => base.HitsTheCorrectUrl();

[U] protected override Task UsesCorrectHttpMethod() => base.UsesCorrectHttpMethod();

[U] protected override void SerializesInitializer() => base.SerializesInitializer();

[U] protected override void SerializesFluent() => base.SerializesFluent();

[I] public override Task ReturnsExpectedStatusCode() => base.ReturnsExpectedResponse();

[I] public override Task ReturnsExpectedIsValid() => base.ReturnsExpectedIsValid();

[I] public override Task ReturnsExpectedResponse() => base.ReturnsExpectedResponse();

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

protected override Nest.Indices AgainstIndex => DefaultSeeder.ProjectsAliasFilter;

// https://youtrack.jetbrains.com/issue/RIDER-19912
[U] protected override Task HitsTheCorrectUrl() => base.HitsTheCorrectUrl();

[U] protected override Task UsesCorrectHttpMethod() => base.UsesCorrectHttpMethod();

[U] protected override void SerializesInitializer() => base.SerializesInitializer();

[U] protected override void SerializesFluent() => base.SerializesFluent();

[I] public override Task ReturnsExpectedStatusCode() => base.ReturnsExpectedResponse();

[I] public override Task ReturnsExpectedIsValid() => base.ReturnsExpectedIsValid();

[I] public override Task ReturnsExpectedResponse() => base.ReturnsExpectedResponse();
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
using System.Linq;
using System.Threading.Tasks;
using Elastic.Managed.Ephemeral;
using Elastic.Xunit.XunitPlumbing;
using Elasticsearch.Net;
using Nest;
using Tests.Core.Extensions;
Expand Down Expand Up @@ -28,5 +30,20 @@ protected override void IntegrationSetup(IElasticClient client, CallUniqueValues
}

protected virtual ICreateIndexRequest CreateIndexSettings(CreateIndexDescriptor create) => create;

// https://youtrack.jetbrains.com/issue/RIDER-19912
[U] protected override Task HitsTheCorrectUrl() => base.HitsTheCorrectUrl();

[U] protected override Task UsesCorrectHttpMethod() => base.UsesCorrectHttpMethod();

[U] protected override void SerializesInitializer() => base.SerializesInitializer();

[U] protected override void SerializesFluent() => base.SerializesFluent();

[I] public override Task ReturnsExpectedStatusCode() => base.ReturnsExpectedResponse();

[I] public override Task ReturnsExpectedIsValid() => base.ReturnsExpectedIsValid();

[I] public override Task ReturnsExpectedResponse() => base.ReturnsExpectedResponse();
}
}
15 changes: 12 additions & 3 deletions src/Tests/Tests/Framework/EndpointTests/ApiIntegrationTestBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,22 @@ protected ApiIntegrationTestBase(TCluster cluster, EndpointUsage usage) : base(c
public override IElasticClient Client => this.Cluster.Client;
protected override TInitializer Initializer => Activator.CreateInstance<TInitializer>();

[I] public async Task ReturnsExpectedStatusCode() =>
// https://youtrack.jetbrains.com/issue/RIDER-19912
[U] protected override Task HitsTheCorrectUrl() => base.HitsTheCorrectUrl();

[U] protected override Task UsesCorrectHttpMethod() => base.UsesCorrectHttpMethod();

[U] protected override void SerializesInitializer() => base.SerializesInitializer();

[U] protected override void SerializesFluent() => base.SerializesFluent();

[I] public virtual async Task ReturnsExpectedStatusCode() =>
await this.AssertOnAllResponses(r => r.ApiCall.HttpStatusCode.Should().Be(this.ExpectStatusCode));

[I] public async Task ReturnsExpectedIsValid() =>
[I] public virtual async Task ReturnsExpectedIsValid() =>
await this.AssertOnAllResponses(r => r.ShouldHaveExpectedIsValid(this.ExpectIsValid));

[I] public async Task ReturnsExpectedResponse() => await this.AssertOnAllResponses(ExpectResponse);
[I] public virtual async Task ReturnsExpectedResponse() => await this.AssertOnAllResponses(ExpectResponse);

protected override Task AssertOnAllResponses(Action<TResponse> assert)
{
Expand Down
13 changes: 5 additions & 8 deletions src/Tests/Tests/Framework/EndpointTests/ApiTestBase.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,17 +26,14 @@ public abstract class ApiTestBase<TCluster, TResponse, TInterface, TDescriptor,

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

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

[U] protected async Task UsesCorrectHttpMethod() =>
await this.AssertOnAllResponses(
r => r.ApiCall.HttpMethod.Should().Be(this.HttpMethod,
this.UniqueValues.CurrentView.GetStringValue()));
[U] protected virtual async Task UsesCorrectHttpMethod() =>
await this.AssertOnAllResponses(r => r.ApiCall.HttpMethod.Should().Be(this.HttpMethod, this.UniqueValues.CurrentView.GetStringValue()));

[U] protected void SerializesInitializer() => this.RoundTripsOrSerializes<TInterface>(this.Initializer);
[U] protected virtual void SerializesInitializer() => this.RoundTripsOrSerializes<TInterface>(this.Initializer);

[U] protected void SerializesFluent() => this.RoundTripsOrSerializes(this.Fluent?.Invoke(NewDescriptor()));
[U] protected virtual void SerializesFluent() => this.RoundTripsOrSerializes(this.Fluent?.Invoke(NewDescriptor()));

private void AssertUrl(Uri u) => u.PathEquals(this.UrlPath, this.UniqueValues.CurrentView.GetStringValue());
}
Expand Down
17 changes: 17 additions & 0 deletions src/Tests/Tests/Framework/EndpointTests/CanConnectTestBase.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
using System.Threading.Tasks;
using Elastic.Managed.Ephemeral;
using Elastic.Xunit.XunitPlumbing;
using Elasticsearch.Net;
using FluentAssertions;
using Nest;
Expand Down Expand Up @@ -32,5 +34,20 @@ protected override void ExpectResponse(IRootNodeInfoResponse response)
response.Tagline.Should().NotBeNullOrWhiteSpace();
response.Name.Should().NotBeNullOrWhiteSpace();
}

// https://youtrack.jetbrains.com/issue/RIDER-19912
[U] protected override Task HitsTheCorrectUrl() => base.HitsTheCorrectUrl();

[U] protected override Task UsesCorrectHttpMethod() => base.UsesCorrectHttpMethod();

[U] protected override void SerializesInitializer() => base.SerializesInitializer();

[U] protected override void SerializesFluent() => base.SerializesFluent();

[I] public override Task ReturnsExpectedStatusCode() => base.ReturnsExpectedResponse();

[I] public override Task ReturnsExpectedIsValid() => base.ReturnsExpectedIsValid();

[I] public override Task ReturnsExpectedResponse() => base.ReturnsExpectedResponse();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ protected override LazyResponses ClientUsage() => Calls(
request: (client, r) => client.RootNodeInfo(r),
requestAsync: (client, r) => client.RootNodeInfoAsync(r)
);

protected override object ExpectJson { get; } = null;

public override IElasticClient Client => this.Cluster.Client;
Expand Down
20 changes: 19 additions & 1 deletion src/Tests/Tests/Search/SearchUsageTestBase.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
using Elasticsearch.Net;
using System.Threading.Tasks;
using Elastic.Xunit.XunitPlumbing;
using Elasticsearch.Net;
using Nest;
using Tests.Core.ManagedElasticsearch.Clusters;
using Tests.Domain;
Expand Down Expand Up @@ -32,5 +34,21 @@ protected override LazyResponses ClientUsage() => Calls(

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

// https://youtrack.jetbrains.com/issue/RIDER-19912
[U] protected override Task HitsTheCorrectUrl() => base.HitsTheCorrectUrl();

[U] protected override Task UsesCorrectHttpMethod() => base.UsesCorrectHttpMethod();

[U] protected override void SerializesInitializer() => base.SerializesInitializer();

[U] protected override void SerializesFluent() => base.SerializesFluent();

[I] public override Task ReturnsExpectedStatusCode() => base.ReturnsExpectedResponse();

[I] public override Task ReturnsExpectedIsValid() => base.ReturnsExpectedIsValid();

[I] public override Task ReturnsExpectedResponse() => base.ReturnsExpectedResponse();


}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System;
using System.Threading.Tasks;
using Elastic.Xunit.XunitPlumbing;
using Elasticsearch.Net;
using Nest;
Expand All @@ -19,6 +20,21 @@ public abstract class MachineLearningIntegrationTestBase<TResponse, TInterface,
{
protected MachineLearningIntegrationTestBase(MachineLearningCluster cluster, EndpointUsage usage) : base(cluster, usage) { }

// https://youtrack.jetbrains.com/issue/RIDER-19912
[U] protected override Task HitsTheCorrectUrl() => base.HitsTheCorrectUrl();

[U] protected override Task UsesCorrectHttpMethod() => base.UsesCorrectHttpMethod();

[U] protected override void SerializesInitializer() => base.SerializesInitializer();

[U] protected override void SerializesFluent() => base.SerializesFluent();

[I] public override Task ReturnsExpectedStatusCode() => base.ReturnsExpectedResponse();

[I] public override Task ReturnsExpectedIsValid() => base.ReturnsExpectedIsValid();

[I] public override Task ReturnsExpectedResponse() => base.ReturnsExpectedResponse();

protected IPutJobResponse PutJob(IElasticClient client, string jobId)
{
var putJobResponse = client.PutJob<Metric>(jobId, f => f
Expand Down