From 3885885d5f4be39fdc2b8d258867c8a7536491cd Mon Sep 17 00:00:00 2001 From: Maciej Zieniuk Date: Thu, 21 Nov 2024 22:43:14 +0000 Subject: [PATCH] PM-10564: Notification create push notification simplification. NotificationStatus not needed. --- .../Commands/CreateNotificationCommand.cs | 2 +- .../NotificationHubPushNotificationService.cs | 6 +- src/Core/Services/IPushNotificationService.cs | 2 +- .../AzureQueuePushNotificationService.cs | 6 +- .../MultiServicePushNotificationService.cs | 4 +- ...NotificationsApiPushNotificationService.cs | 6 +- .../RelayPushNotificationService.cs | 6 +- .../NoopPushNotificationService.cs | 2 +- .../Commands/CreateNotificationCommandTest.cs | 4 +- ...ficationHubPushNotificationServiceTests.cs | 104 +++++++----------- .../AzureQueuePushNotificationServiceTests.cs | 14 +-- ...ultiServicePushNotificationServiceTests.cs | 15 +-- 12 files changed, 63 insertions(+), 108 deletions(-) diff --git a/src/Core/NotificationCenter/Commands/CreateNotificationCommand.cs b/src/Core/NotificationCenter/Commands/CreateNotificationCommand.cs index c512ed2227..a4cacea1ea 100644 --- a/src/Core/NotificationCenter/Commands/CreateNotificationCommand.cs +++ b/src/Core/NotificationCenter/Commands/CreateNotificationCommand.cs @@ -37,7 +37,7 @@ public class CreateNotificationCommand : ICreateNotificationCommand var newNotification = await _notificationRepository.CreateAsync(notification); - await _pushNotificationService.PushSyncNotificationCreateAsync(newNotification, null); + await _pushNotificationService.PushSyncNotificationCreateAsync(newNotification); return newNotification; } diff --git a/src/Core/NotificationHub/NotificationHubPushNotificationService.cs b/src/Core/NotificationHub/NotificationHubPushNotificationService.cs index 2cdbb513a2..90030ad209 100644 --- a/src/Core/NotificationHub/NotificationHubPushNotificationService.cs +++ b/src/Core/NotificationHub/NotificationHubPushNotificationService.cs @@ -182,7 +182,7 @@ public class NotificationHubPushNotificationService : IPushNotificationService await PushAuthRequestAsync(authRequest, PushType.AuthRequestResponse); } - public async Task PushSyncNotificationCreateAsync(Notification notification, NotificationStatus? notificationStatus) + public async Task PushSyncNotificationCreateAsync(Notification notification) { var message = new SyncNotificationPushNotification { @@ -190,9 +190,7 @@ public class NotificationHubPushNotificationService : IPushNotificationService UserId = notification.UserId, OrganizationId = notification.OrganizationId, ClientType = notification.ClientType, - RevisionDate = notification.RevisionDate, - ReadDate = notificationStatus?.ReadDate, - DeletedDate = notificationStatus?.DeletedDate + RevisionDate = notification.RevisionDate }; if (notification.UserId.HasValue) diff --git a/src/Core/Services/IPushNotificationService.cs b/src/Core/Services/IPushNotificationService.cs index d40f7beeb0..52b68c7846 100644 --- a/src/Core/Services/IPushNotificationService.cs +++ b/src/Core/Services/IPushNotificationService.cs @@ -24,7 +24,7 @@ public interface IPushNotificationService Task PushSyncSendCreateAsync(Send send); Task PushSyncSendUpdateAsync(Send send); Task PushSyncSendDeleteAsync(Send send); - Task PushSyncNotificationCreateAsync(Notification notification, NotificationStatus? notificationStatus); + Task PushSyncNotificationCreateAsync(Notification notification); Task PushSyncNotificationUpdateAsync(Notification notification, NotificationStatus? notificationStatus); Task PushAuthRequestAsync(AuthRequest authRequest); Task PushAuthRequestResponseAsync(AuthRequest authRequest); diff --git a/src/Core/Services/Implementations/AzureQueuePushNotificationService.cs b/src/Core/Services/Implementations/AzureQueuePushNotificationService.cs index a254887edf..0855effe50 100644 --- a/src/Core/Services/Implementations/AzureQueuePushNotificationService.cs +++ b/src/Core/Services/Implementations/AzureQueuePushNotificationService.cs @@ -165,7 +165,7 @@ public class AzureQueuePushNotificationService : IPushNotificationService await PushSendAsync(send, PushType.SyncSendDelete); } - public async Task PushSyncNotificationCreateAsync(Notification notification, NotificationStatus? notificationStatus) + public async Task PushSyncNotificationCreateAsync(Notification notification) { var message = new SyncNotificationPushNotification { @@ -173,9 +173,7 @@ public class AzureQueuePushNotificationService : IPushNotificationService UserId = notification.UserId, OrganizationId = notification.OrganizationId, ClientType = notification.ClientType, - RevisionDate = notification.RevisionDate, - ReadDate = notificationStatus?.ReadDate, - DeletedDate = notificationStatus?.DeletedDate + RevisionDate = notification.RevisionDate }; await SendMessageAsync(PushType.SyncNotificationCreate, message, true); diff --git a/src/Core/Services/Implementations/MultiServicePushNotificationService.cs b/src/Core/Services/Implementations/MultiServicePushNotificationService.cs index 2f321348a8..c29ba9516c 100644 --- a/src/Core/Services/Implementations/MultiServicePushNotificationService.cs +++ b/src/Core/Services/Implementations/MultiServicePushNotificationService.cs @@ -146,9 +146,9 @@ public class MultiServicePushNotificationService : IPushNotificationService return Task.FromResult(0); } - public Task PushSyncNotificationCreateAsync(Notification notification, NotificationStatus? notificationStatus) + public Task PushSyncNotificationCreateAsync(Notification notification) { - PushToServices((s) => s.PushSyncNotificationCreateAsync(notification, notificationStatus)); + PushToServices((s) => s.PushSyncNotificationCreateAsync(notification)); return Task.CompletedTask; } diff --git a/src/Core/Services/Implementations/NotificationsApiPushNotificationService.cs b/src/Core/Services/Implementations/NotificationsApiPushNotificationService.cs index 65f4a8e1c8..e10179256c 100644 --- a/src/Core/Services/Implementations/NotificationsApiPushNotificationService.cs +++ b/src/Core/Services/Implementations/NotificationsApiPushNotificationService.cs @@ -172,7 +172,7 @@ public class NotificationsApiPushNotificationService : BaseIdentityClientService await PushSendAsync(send, PushType.SyncSendDelete); } - public async Task PushSyncNotificationCreateAsync(Notification notification, NotificationStatus? notificationStatus) + public async Task PushSyncNotificationCreateAsync(Notification notification) { var message = new SyncNotificationPushNotification { @@ -180,9 +180,7 @@ public class NotificationsApiPushNotificationService : BaseIdentityClientService UserId = notification.UserId, OrganizationId = notification.OrganizationId, ClientType = notification.ClientType, - RevisionDate = notification.RevisionDate, - ReadDate = notificationStatus?.ReadDate, - DeletedDate = notificationStatus?.DeletedDate + RevisionDate = notification.RevisionDate }; await SendMessageAsync(PushType.SyncNotificationCreate, message, true); diff --git a/src/Core/Services/Implementations/RelayPushNotificationService.cs b/src/Core/Services/Implementations/RelayPushNotificationService.cs index ac52c07743..c5a934e3bf 100644 --- a/src/Core/Services/Implementations/RelayPushNotificationService.cs +++ b/src/Core/Services/Implementations/RelayPushNotificationService.cs @@ -190,7 +190,7 @@ public class RelayPushNotificationService : BaseIdentityClientService, IPushNoti await SendPayloadToUserAsync(authRequest.UserId, type, message, true); } - public async Task PushSyncNotificationCreateAsync(Notification notification, NotificationStatus? notificationStatus) + public async Task PushSyncNotificationCreateAsync(Notification notification) { var message = new SyncNotificationPushNotification { @@ -198,9 +198,7 @@ public class RelayPushNotificationService : BaseIdentityClientService, IPushNoti UserId = notification.UserId, OrganizationId = notification.OrganizationId, ClientType = notification.ClientType, - RevisionDate = notification.RevisionDate, - ReadDate = notificationStatus?.ReadDate, - DeletedDate = notificationStatus?.DeletedDate + RevisionDate = notification.RevisionDate }; if (notification.UserId.HasValue) diff --git a/src/Core/Services/NoopImplementations/NoopPushNotificationService.cs b/src/Core/Services/NoopImplementations/NoopPushNotificationService.cs index e202d29d73..e7ee9c38d9 100644 --- a/src/Core/Services/NoopImplementations/NoopPushNotificationService.cs +++ b/src/Core/Services/NoopImplementations/NoopPushNotificationService.cs @@ -106,7 +106,7 @@ public class NoopPushNotificationService : IPushNotificationService return Task.FromResult(0); } - public Task PushSyncNotificationCreateAsync(Notification notification, NotificationStatus? notificationStatus) => Task.CompletedTask; + public Task PushSyncNotificationCreateAsync(Notification notification) => Task.CompletedTask; public Task PushSyncNotificationUpdateAsync(Notification notification, NotificationStatus? notificationStatus) => Task.CompletedTask; } diff --git a/test/Core.Test/NotificationCenter/Commands/CreateNotificationCommandTest.cs b/test/Core.Test/NotificationCenter/Commands/CreateNotificationCommandTest.cs index d0a2deb790..05e18b4385 100644 --- a/test/Core.Test/NotificationCenter/Commands/CreateNotificationCommandTest.cs +++ b/test/Core.Test/NotificationCenter/Commands/CreateNotificationCommandTest.cs @@ -43,7 +43,7 @@ public class CreateNotificationCommandTest await Assert.ThrowsAsync(() => sutProvider.Sut.CreateAsync(notification)); await sutProvider.GetDependency() .Received(0) - .PushSyncNotificationCreateAsync(Arg.Any(), Arg.Any()); + .PushSyncNotificationCreateAsync(Arg.Any()); } [Theory] @@ -61,6 +61,6 @@ public class CreateNotificationCommandTest Assert.Equal(notification.CreationDate, notification.RevisionDate); await sutProvider.GetDependency() .Received(1) - .PushSyncNotificationCreateAsync(newNotification, null); + .PushSyncNotificationCreateAsync(newNotification); } } diff --git a/test/Core.Test/NotificationHub/NotificationHubPushNotificationServiceTests.cs b/test/Core.Test/NotificationHub/NotificationHubPushNotificationServiceTests.cs index 9cf943aa3f..e9b5557d46 100644 --- a/test/Core.Test/NotificationHub/NotificationHubPushNotificationServiceTests.cs +++ b/test/Core.Test/NotificationHub/NotificationHubPushNotificationServiceTests.cs @@ -19,15 +19,12 @@ namespace Bit.Core.Test.NotificationHub; public class NotificationHubPushNotificationServiceTests { [Theory] - [BitAutoData(false)] - [BitAutoData(true)] + [BitAutoData] [NotificationCustomize] - public async Task PushSyncNotificationCreateAsync_Global_NotSent(bool notificationStatusNull, - SutProvider sutProvider, Notification notification, - NotificationStatus notificationStatus) + public async Task PushSyncNotificationCreateAsync_Global_NotSent( + SutProvider sutProvider, Notification notification) { - await sutProvider.Sut.PushSyncNotificationCreateAsync(notification, - notificationStatusNull ? null : notificationStatus); + await sutProvider.Sut.PushSyncNotificationCreateAsync(notification); await sutProvider.GetDependency() .Received(0) @@ -40,15 +37,12 @@ public class NotificationHubPushNotificationServiceTests } [Theory] - [BitAutoData(false, false)] - [BitAutoData(false, true)] - [BitAutoData(true, false)] - [BitAutoData(true, true)] + [BitAutoData(false)] + [BitAutoData(true)] [NotificationCustomize(false)] public async Task PushSyncNotificationCreateAsync_UserIdProvidedClientTypeAll_SentToUser( - bool organizationIdNull, bool notificationStatusNull, - SutProvider sutProvider, - Notification notification, NotificationStatus notificationStatus) + bool organizationIdNull, SutProvider sutProvider, + Notification notification) { if (organizationIdNull) { @@ -56,10 +50,9 @@ public class NotificationHubPushNotificationServiceTests } notification.ClientType = ClientType.All; - var expectedNotificationStatus = notificationStatusNull ? null : notificationStatus; - var expectedSyncNotification = ToSyncNotificationPushNotification(notification, expectedNotificationStatus); + var expectedSyncNotification = ToSyncNotificationPushNotification(notification, null); - await sutProvider.Sut.PushSyncNotificationCreateAsync(notification, expectedNotificationStatus); + await sutProvider.Sut.PushSyncNotificationCreateAsync(notification); await AssertSendTemplateNotificationAsync(sutProvider, PushType.SyncNotificationCreate, expectedSyncNotification, @@ -70,26 +63,20 @@ public class NotificationHubPushNotificationServiceTests } [Theory] - [BitAutoData(false, ClientType.Browser)] - [BitAutoData(false, ClientType.Desktop)] - [BitAutoData(false, ClientType.Web)] - [BitAutoData(false, ClientType.Mobile)] - [BitAutoData(true, ClientType.Browser)] - [BitAutoData(true, ClientType.Desktop)] - [BitAutoData(true, ClientType.Web)] - [BitAutoData(true, ClientType.Mobile)] + [BitAutoData(ClientType.Browser)] + [BitAutoData(ClientType.Desktop)] + [BitAutoData(ClientType.Web)] + [BitAutoData(ClientType.Mobile)] [NotificationCustomize(false)] public async Task PushSyncNotificationCreateAsync_UserIdProvidedOrganizationIdNullClientTypeNotAll_SentToUser( - bool notificationStatusNull, ClientType clientType, - SutProvider sutProvider, Notification notification, - NotificationStatus notificationStatus) + ClientType clientType, SutProvider sutProvider, + Notification notification) { notification.OrganizationId = null; notification.ClientType = clientType; - var expectedNotificationStatus = notificationStatusNull ? null : notificationStatus; - var expectedSyncNotification = ToSyncNotificationPushNotification(notification, expectedNotificationStatus); + var expectedSyncNotification = ToSyncNotificationPushNotification(notification, null); - await sutProvider.Sut.PushSyncNotificationCreateAsync(notification, expectedNotificationStatus); + await sutProvider.Sut.PushSyncNotificationCreateAsync(notification); await AssertSendTemplateNotificationAsync(sutProvider, PushType.SyncNotificationCreate, expectedSyncNotification, @@ -100,25 +87,19 @@ public class NotificationHubPushNotificationServiceTests } [Theory] - [BitAutoData(false, ClientType.Browser)] - [BitAutoData(false, ClientType.Desktop)] - [BitAutoData(false, ClientType.Web)] - [BitAutoData(false, ClientType.Mobile)] - [BitAutoData(true, ClientType.Browser)] - [BitAutoData(true, ClientType.Desktop)] - [BitAutoData(true, ClientType.Web)] - [BitAutoData(true, ClientType.Mobile)] + [BitAutoData(ClientType.Browser)] + [BitAutoData(ClientType.Desktop)] + [BitAutoData(ClientType.Web)] + [BitAutoData(ClientType.Mobile)] [NotificationCustomize(false)] public async Task PushSyncNotificationCreateAsync_UserIdProvidedOrganizationIdProvidedClientTypeNotAll_SentToUser( - bool notificationStatusNull, ClientType clientType, - SutProvider sutProvider, - Notification notification, NotificationStatus notificationStatus) + ClientType clientType, SutProvider sutProvider, + Notification notification) { notification.ClientType = clientType; - var expectedNotificationStatus = notificationStatusNull ? null : notificationStatus; - var expectedSyncNotification = ToSyncNotificationPushNotification(notification, expectedNotificationStatus); + var expectedSyncNotification = ToSyncNotificationPushNotification(notification, null); - await sutProvider.Sut.PushSyncNotificationCreateAsync(notification, expectedNotificationStatus); + await sutProvider.Sut.PushSyncNotificationCreateAsync(notification); await AssertSendTemplateNotificationAsync(sutProvider, PushType.SyncNotificationCreate, expectedSyncNotification, @@ -129,19 +110,16 @@ public class NotificationHubPushNotificationServiceTests } [Theory] - [BitAutoData(false)] - [BitAutoData(true)] + [BitAutoData] [NotificationCustomize(false)] public async Task PushSyncNotificationCreateAsync_UserIdNullOrganizationIdProvidedClientTypeAll_SentToOrganization( - bool notificationStatusNull, SutProvider sutProvider, - Notification notification, NotificationStatus notificationStatus) + SutProvider sutProvider, Notification notification) { notification.UserId = null; notification.ClientType = ClientType.All; - var expectedNotificationStatus = notificationStatusNull ? null : notificationStatus; - var expectedSyncNotification = ToSyncNotificationPushNotification(notification, expectedNotificationStatus); + var expectedSyncNotification = ToSyncNotificationPushNotification(notification, null); - await sutProvider.Sut.PushSyncNotificationCreateAsync(notification, expectedNotificationStatus); + await sutProvider.Sut.PushSyncNotificationCreateAsync(notification); await AssertSendTemplateNotificationAsync(sutProvider, PushType.SyncNotificationCreate, expectedSyncNotification, @@ -152,27 +130,21 @@ public class NotificationHubPushNotificationServiceTests } [Theory] - [BitAutoData(false, ClientType.Browser)] - [BitAutoData(false, ClientType.Desktop)] - [BitAutoData(false, ClientType.Web)] - [BitAutoData(false, ClientType.Mobile)] - [BitAutoData(true, ClientType.Browser)] - [BitAutoData(true, ClientType.Desktop)] - [BitAutoData(true, ClientType.Web)] - [BitAutoData(true, ClientType.Mobile)] + [BitAutoData(ClientType.Browser)] + [BitAutoData(ClientType.Desktop)] + [BitAutoData(ClientType.Web)] + [BitAutoData(ClientType.Mobile)] [NotificationCustomize(false)] public async Task PushSyncNotificationCreateAsync_UserIdNullOrganizationIdProvidedClientTypeNotAll_SentToOrganization( - bool notificationStatusNull, ClientType clientType, - SutProvider sutProvider, Notification notification, - NotificationStatus notificationStatus) + ClientType clientType, SutProvider sutProvider, + Notification notification) { notification.UserId = null; notification.ClientType = clientType; - var expectedNotificationStatus = notificationStatusNull ? null : notificationStatus; - var expectedSyncNotification = ToSyncNotificationPushNotification(notification, expectedNotificationStatus); + var expectedSyncNotification = ToSyncNotificationPushNotification(notification, null); - await sutProvider.Sut.PushSyncNotificationCreateAsync(notification, expectedNotificationStatus); + await sutProvider.Sut.PushSyncNotificationCreateAsync(notification); await AssertSendTemplateNotificationAsync(sutProvider, PushType.SyncNotificationCreate, expectedSyncNotification, diff --git a/test/Core.Test/Services/AzureQueuePushNotificationServiceTests.cs b/test/Core.Test/Services/AzureQueuePushNotificationServiceTests.cs index 078bfb3ccb..3907d34c50 100644 --- a/test/Core.Test/Services/AzureQueuePushNotificationServiceTests.cs +++ b/test/Core.Test/Services/AzureQueuePushNotificationServiceTests.cs @@ -22,26 +22,22 @@ namespace Bit.Core.Test.Services; public class AzureQueuePushNotificationServiceTests { [Theory] - [BitAutoData(false)] - [BitAutoData(true)] + [BitAutoData] [NotificationCustomize] - [NotificationStatusCustomize] [CurrentContextCustomize] - public async Task PushSyncNotificationCreateAsync_Notification_Sent(bool notificationStatusNull, + public async Task PushSyncNotificationCreateAsync_Notification_Sent( SutProvider sutProvider, Notification notification, Guid deviceIdentifier, - ICurrentContext currentContext, NotificationStatus notificationStatus) + ICurrentContext currentContext) { - var expectedNotificationStatus = notificationStatusNull ? null : notificationStatus; currentContext.DeviceIdentifier.Returns(deviceIdentifier.ToString()); sutProvider.GetDependency().HttpContext!.RequestServices .GetService(Arg.Any()).Returns(currentContext); - await sutProvider.Sut.PushSyncNotificationCreateAsync(notification, expectedNotificationStatus); + await sutProvider.Sut.PushSyncNotificationCreateAsync(notification); await sutProvider.GetDependency().Received(1) .SendMessageAsync(Arg.Is(message => - MatchMessage(PushType.SyncNotificationCreate, message, - new SyncNotificationEquals(notification, expectedNotificationStatus), + MatchMessage(PushType.SyncNotificationCreate, message, new SyncNotificationEquals(notification, null), deviceIdentifier.ToString()))); } diff --git a/test/Core.Test/Services/MultiServicePushNotificationServiceTests.cs b/test/Core.Test/Services/MultiServicePushNotificationServiceTests.cs index f93bbd12de..bd8bfeeba4 100644 --- a/test/Core.Test/Services/MultiServicePushNotificationServiceTests.cs +++ b/test/Core.Test/Services/MultiServicePushNotificationServiceTests.cs @@ -14,22 +14,17 @@ namespace Bit.Core.Test.Services; public class MultiServicePushNotificationServiceTests { [Theory] - [BitAutoData(false)] - [BitAutoData(true)] + [BitAutoData] [NotificationCustomize] - [NotificationStatusCustomize] - public async Task PushSyncNotificationCreateAsync_Notification_Sent(bool notificationStatusNull, - SutProvider sutProvider, Notification notification, - NotificationStatus notificationStatus) + public async Task PushSyncNotificationCreateAsync_Notification_Sent( + SutProvider sutProvider, Notification notification) { - await sutProvider.Sut.PushSyncNotificationCreateAsync(notification, - notificationStatusNull ? null : notificationStatus); + await sutProvider.Sut.PushSyncNotificationCreateAsync(notification); - var expectedNotificationStatus = notificationStatusNull ? null : notificationStatus; await sutProvider.GetDependency>() .First() .Received(1) - .PushSyncNotificationCreateAsync(notification, expectedNotificationStatus); + .PushSyncNotificationCreateAsync(notification); } [Theory]