mirror of
https://github.com/bitwarden/server.git
synced 2025-07-02 08:32:50 -05:00
Introduce notification hub pool
This commit is contained in:
52
test/Core.Test/NotificationHub/NotificationHubProxyTests.cs
Normal file
52
test/Core.Test/NotificationHub/NotificationHubProxyTests.cs
Normal file
@ -0,0 +1,52 @@
|
||||
using AutoFixture;
|
||||
using Bit.Core.NotificationHub;
|
||||
using Bit.Test.Common.AutoFixture;
|
||||
using Microsoft.Azure.NotificationHubs;
|
||||
using NSubstitute;
|
||||
using Xunit;
|
||||
|
||||
namespace Bit.Core.Test.NotificationHub;
|
||||
|
||||
public class NotificationHubProxyTests
|
||||
{
|
||||
private readonly IEnumerable<INotificationHubClient> _clients;
|
||||
public NotificationHubProxyTests()
|
||||
{
|
||||
_clients = new Fixture().WithAutoNSubstitutions().CreateMany<INotificationHubClient>();
|
||||
}
|
||||
|
||||
public static IEnumerable<object[]> ClientMethods =
|
||||
[
|
||||
[
|
||||
(NotificationHubClientProxy c) => c.DeleteInstallationAsync("test"),
|
||||
(INotificationHubClient c) => c.DeleteInstallationAsync("test"),
|
||||
],
|
||||
[
|
||||
(NotificationHubClientProxy c) => c.DeleteInstallationAsync("test", default),
|
||||
(INotificationHubClient c) => c.DeleteInstallationAsync("test", default),
|
||||
],
|
||||
[
|
||||
(NotificationHubClientProxy c) => c.PatchInstallationAsync("test", new List<PartialUpdateOperation>()),
|
||||
(INotificationHubClient c) => c.PatchInstallationAsync("test", Arg.Any<List<PartialUpdateOperation>>()),
|
||||
],
|
||||
[
|
||||
(NotificationHubClientProxy c) => c.PatchInstallationAsync("test", new List<PartialUpdateOperation>(), default),
|
||||
(INotificationHubClient c) => c.PatchInstallationAsync("test", Arg.Any<List<PartialUpdateOperation>>(), default)
|
||||
]
|
||||
];
|
||||
|
||||
[Theory]
|
||||
[MemberData(nameof(ClientMethods))]
|
||||
public async void CallsAllClients(Func<NotificationHubClientProxy, Task> proxyMethod, Func<INotificationHubClient, Task> clientMethod)
|
||||
{
|
||||
var clients = _clients.ToArray();
|
||||
var proxy = new NotificationHubClientProxy(clients);
|
||||
|
||||
await proxyMethod(proxy);
|
||||
|
||||
foreach (var client in clients)
|
||||
{
|
||||
await clientMethod(client.Received());
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user