Skip to content

Commit 47f2681

Browse files
committed
tests
1 parent 5a27fef commit 47f2681

6 files changed

Lines changed: 44 additions & 37 deletions

File tree

ManagedCode.Keda.Orleans.Scaler.Client/Extensions/BuilderExtensions.cs

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using Grpc.AspNetCore.Server;
12
using ManagedCode.Keda.Orleans.Interfaces;
23
using ManagedCode.Keda.Orleans.Scaler.Client.Middlewares;
34
using ManagedCode.Keda.Orleans.Scaler.Client.Models;
@@ -20,7 +21,10 @@ public static IApplicationBuilder UseScalerForRequest(this IApplicationBuilder a
2021

2122
public static IApplicationBuilder UseApiOrleansScaler(this IApplicationBuilder app)
2223
{
23-
app.UseEndpoints(endpoints => { endpoints.MapGrpcService<GrpcOrleansScalerService>(); });
24+
app.UseEndpoints(endpoints =>
25+
{
26+
endpoints.MapGrpcService<GrpcOrleansScalerService>();
27+
});
2428

2529
return app;
2630
}
@@ -30,7 +34,6 @@ public static IEndpointRouteBuilder MapApiRequestsScaler(this IEndpointRouteBuil
3034
endpoints.MapGet(apiRoute, async ([FromServices] IClusterClient clusterClient) =>
3135
{
3236
var count = await clusterClient.GetGrain<IRequestTrackerGrain>(0).GetRequestsCount();
33-
3437
return new RequestsStats(count);
3538
});
3639

@@ -51,7 +54,6 @@ public static IEndpointRouteBuilder MapSignalRScaler(this IEndpointRouteBuilder
5154
public static IEndpointRouteBuilder MapOrleansScaler(this IEndpointRouteBuilder endpoints, string apiRoute = "/api/scaling/orleans")
5255
{
5356
endpoints.MapGet(apiRoute, ([FromServices] ApiOrleansScalerService scaler) => scaler.GetOrleansStatsAsync());
54-
5557
return endpoints;
5658
}
5759

@@ -78,15 +80,23 @@ public static void AddScalerForSignalR(this HubOptions options)
7880

7981
public static IServiceCollection AddGrpcOrleansScaling(this IServiceCollection services)
8082
{
81-
services.AddSingleton<OrleansStatsService>();
8283
services.AddGrpc();
84+
services.AddSingleton<OrleansStatsService>();
85+
86+
return services;
87+
}
88+
89+
public static IServiceCollection AddGrpcOrleansScaling(this IServiceCollection services, Action<GrpcServiceOptions> configureOptions)
90+
{
91+
services.AddGrpc(configureOptions);
92+
services.AddSingleton<OrleansStatsService>();
8393

8494
return services;
8595
}
8696

8797
public static IServiceCollection AddApiOrleansScaling(this IServiceCollection services)
8898
{
89-
services.AddSingleton<OrleansStatsService>();
99+
services.AddGrpcOrleansScaling();
90100
services.AddSingleton<ApiOrleansScalerService>();
91101

92102
return services;

ManagedCode.Keda.Orleans.Scaler.Client/ManagedCode.Keda.Orleans.Scaler.Client.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
</PropertyGroup>
1111

1212
<ItemGroup>
13-
<PackageReference Include="Grpc.AspNetCore" Version="2.51.0" />
13+
<PackageReference Include="Grpc.AspNetCore" Version="2.52.0" />
1414
<PackageReference Include="ManagedCode.TimeSeries" Version="0.0.17" />
1515
<PackageReference Include="Microsoft.Orleans.Client" Version="7.1.0" />
1616
</ItemGroup>

ManagedCode.Keda.Orleans.Scaler.Client/OrleansStatsService.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ public OrleansStatsService(IClusterClient grainFactory, ILogger<OrleansStatsServ
1414
_managementGrain = grainFactory.GetGrain<IManagementGrain>(0);
1515
}
1616

17-
1817
public async Task<int> GetGrainCountInClusterAsync(params string[] grainTypes)
1918
{
2019
var statistics = await _managementGrain.GetSimpleGrainStatistics();

ManagedCode.Keda.Tests/Cluster/TestClusterApplication.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77

88
namespace ManagedCode.Keda.Tests.Cluster;
99

10-
[CollectionDefinition(nameof(TestClusterApplication))]
11-
public class TestClusterApplication : WebApplicationFactory<HttpHostProgram>, ICollectionFixture<TestClusterApplication>
10+
11+
public class TestClusterApplication : WebApplicationFactory<HttpHostProgram>
1212
{
1313
public TestClusterApplication()
1414
{

ManagedCode.Keda.Tests/ManagedCode.Keda.Tests.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@
1414
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1515
</PackageReference>
1616
<PackageReference Include="FluentAssertions" Version="6.10.0" />
17-
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="7.0.3" />
18-
<PackageReference Include="Microsoft.AspNetCore.SignalR.Client" Version="7.0.3" />
19-
<PackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson" Version="7.0.3" />
20-
<PackageReference Include="Microsoft.AspNetCore.TestHost" Version="7.0.3" />
17+
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="7.0.4" />
18+
<PackageReference Include="Microsoft.AspNetCore.SignalR.Client" Version="7.0.4" />
19+
<PackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson" Version="7.0.4" />
20+
<PackageReference Include="Microsoft.AspNetCore.TestHost" Version="7.0.4" />
2121
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" />
2222
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="7.0.0" />
2323
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />

ManagedCode.Keda.Tests/SomeTest.cs

Lines changed: 22 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -9,75 +9,73 @@
99

1010
namespace ManagedCode.Keda.Tests;
1111

12-
[Collection(nameof(TestClusterApplication))]
13-
public class SomeTest
12+
13+
public class SomeTest : TestClusterApplication
1414
{
15-
private readonly TestClusterApplication _testApp;
1615
private readonly ITestOutputHelper _outputHelper;
1716

18-
public SomeTest(TestClusterApplication testApp, ITestOutputHelper outputHelper)
17+
public SomeTest(ITestOutputHelper outputHelper)
1918
{
20-
_testApp = testApp;
2119
_outputHelper = outputHelper;
2220
}
2321

2422
[Fact]
2523
public async Task OneRequest()
2624
{
27-
var baseCount = await _testApp.Cluster.Client.GetGrain<IRequestTrackerGrain>(0).GetRequestsCount();
25+
var baseCount = await this.Cluster.Client.GetGrain<IRequestTrackerGrain>(0).GetRequestsCount();
2826

2927

30-
var request = await _testApp.CreateClient().GetAsync("/random");
28+
var request = await this.CreateClient().GetAsync("/random");
3129
request.StatusCode.Should().Be(HttpStatusCode.OK);
3230

33-
await Task.Delay(TimeSpan.FromSeconds(11));
31+
await Task.Delay(TimeSpan.FromSeconds(15));
3432

35-
var count = await _testApp.Cluster.Client.GetGrain<IRequestTrackerGrain>(0).GetRequestsCount();
33+
var count = await this.Cluster.Client.GetGrain<IRequestTrackerGrain>(0).GetRequestsCount();
3634
count.Should().Be(baseCount+1);
3735

38-
request = await _testApp.CreateClient().GetAsync("/api/scaling/requests");
36+
request = await this.CreateClient().GetAsync("/api/scaling/requests");
3937
request.StatusCode.Should().Be(HttpStatusCode.OK);
4038
var content = await request.Content.ReadAsStringAsync();
4139
}
4240

4341
[Fact]
4442
public async Task OneSignalR()
4543
{
46-
await Task.Delay(TimeSpan.FromSeconds(11));
47-
var count = await _testApp.Cluster.Client.GetGrain<ISignalRTrackerGrain>(0).GetConnections();
44+
await Task.Delay(TimeSpan.FromSeconds(15));
45+
var count = await this.Cluster.Client.GetGrain<ISignalRTrackerGrain>(0).GetConnections();
4846
count.Should().Be(0);
4947

50-
var client = _testApp.CreateSignalRClient(nameof(TestHub));
48+
var client = this.CreateSignalRClient(nameof(TestHub));
5149
await client.StartAsync();
5250

53-
await Task.Delay(TimeSpan.FromSeconds(11));
51+
await Task.Delay(TimeSpan.FromSeconds(15));
5452

55-
count = await _testApp.Cluster.Client.GetGrain<ISignalRTrackerGrain>(0).GetConnections();
53+
count = await this.Cluster.Client.GetGrain<ISignalRTrackerGrain>(0).GetConnections();
5654
count.Should().Be(1);
5755

58-
var request = await _testApp.CreateClient().GetAsync("/api/scaling/signalr");
56+
var request = await this.CreateClient().GetAsync("/api/scaling/signalr");
5957
request.StatusCode.Should().Be(HttpStatusCode.OK);
6058
var content = await request.Content.ReadAsStringAsync();
6159

6260
await client.StopAsync();
6361
await client.DisposeAsync();
6462

65-
await Task.Delay(TimeSpan.FromSeconds(11));
63+
await Task.Delay(TimeSpan.FromSeconds(15));
6664

67-
count = await _testApp.Cluster.Client.GetGrain<ISignalRTrackerGrain>(0).GetConnections();
65+
count = await this.Cluster.Client.GetGrain<ISignalRTrackerGrain>(0).GetConnections();
6866
count.Should().Be(0);
6967

7068
}
7169

7270
[Fact]
7371
public async Task SignalR_500()
7472
{
75-
var count = await _testApp.Cluster.Client.GetGrain<ISignalRTrackerGrain>(0).GetConnections();
73+
var count = await this.Cluster.Client.GetGrain<ISignalRTrackerGrain>(0).GetConnections();
7674
count.Should().Be(0);
7775

7876
for (int i = 0; i < 500; i++)
7977
{
80-
var connection = _testApp.CreateSignalRClient(nameof(TestHub));
78+
var connection = this.CreateSignalRClient(nameof(TestHub));
8179

8280
try
8381
{
@@ -118,7 +116,7 @@ public async Task SignalR_500()
118116
await Task.Delay(TimeSpan.FromMinutes(1));
119117

120118

121-
count = await _testApp.Cluster.Client.GetGrain<ISignalRTrackerGrain>(0).GetConnections();
119+
count = await this.Cluster.Client.GetGrain<ISignalRTrackerGrain>(0).GetConnections();
122120
count.Should().Be(0);
123121
}
124122

@@ -128,11 +126,11 @@ public async Task Orleans()
128126
var iterations = 2000;
129127
for (int i = 0; i < iterations; i++)
130128
{
131-
await _testApp.Cluster.Client.GetGrain<ISignalRTrackerGrain>(i).OnConnectedAsync("host");
132-
await _testApp.Cluster.Client.GetGrain<IRequestTrackerGrain>(i).TrackRequest("host");
129+
await this.Cluster.Client.GetGrain<ISignalRTrackerGrain>(i).OnConnectedAsync("host");
130+
await this.Cluster.Client.GetGrain<IRequestTrackerGrain>(i).TrackRequest("host");
133131
}
134132

135-
var request = await _testApp.CreateClient().GetAsync("/api/scaling/orleans");
133+
var request = await this.CreateClient().GetAsync("/api/scaling/orleans");
136134
request.StatusCode.Should().Be(HttpStatusCode.OK);
137135
var content = await request.Content.ReadAsStringAsync();
138136
var dto = JsonConvert.DeserializeObject<OrleansStats>(content);

0 commit comments

Comments
 (0)