public void SendVersionedPushNotificationToDeviceWithoutWithInvalidVersionTest() { NotificationTest test = new NotificationTest(); PushNotificationChannel channel = new PushNotificationChannel(this.CreateMobileServiceClient(), test.EventPublisher); PushNotification notification = this.CreateNotification(new Version(1, 0, 0)); NotificationAccount <Guid> account = test.AddNotificationAccount(Guid.NewGuid(), mobileAppVersion: "Invalid"); channel.SendAsync(account, notification).Wait(); this.AssertSentFailed(test, account, notification, NotificationErrorCode.VersionMismatch); }
public void SendPushNotificationForAnOutdatedVersionOfTheApplicationTest() { NotificationTest test = new NotificationTest(); PushNotificationChannel channel = new PushNotificationChannel(this.CreateMobileServiceClient(), test.EventPublisher); PushNotification notification = this.CreateNotification(new Version(1, 0, 0), new Version(1, 0, 2)); NotificationAccount <Guid> account = test.AddNotificationAccount(Guid.NewGuid(), mobileAppVersion: "1.0.3"); channel.SendAsync(account, notification).Wait(); this.AssertSentFailed(test, account, notification, NotificationErrorCode.VersionMismatch); }
public void SendPushNotificationWithOnlyMinimumAppVersionSpecifiedTest() { NotificationTest test = new NotificationTest(); PushNotificationChannel channel = new PushNotificationChannel(this.CreateMobileServiceClient(), test.EventPublisher); PushNotification notification = this.CreateNotification(new Version(1, 0, 0)); NotificationAccount <Guid> account = test.AddNotificationAccount(Guid.NewGuid(), mobileAppVersion: "1.0.3"); channel.SendAsync(account, notification).Wait(); this.AssertSentSuccessful(test, account, notification); }
public void SendPushNotificationForAccountWithoutMobileDeviceTest() { NotificationTest test = new NotificationTest(); PushNotificationChannel channel = new PushNotificationChannel(this.CreateMobileServiceClient(), test.EventPublisher); PushNotification notification = this.CreateNotification(); NotificationAccount <Guid> account = test.AddNotificationAccount(Guid.NewGuid(), "*****@*****.**", "Joe", null, (MobileDevice)null); channel.SendAsync(account, notification).Wait(); this.AssertSentFailed(test, account, notification, NotificationErrorCode.MobileDeviceNotRegistered); }
public void SendInvalidEndPointPushNotificationTest() { NotificationTest test = new NotificationTest(); IMobilePushNotificationServiceClient mobileServiceClient = this.CreateMobileServiceClient(); PushNotificationChannel channel = new PushNotificationChannel(mobileServiceClient, test.EventPublisher); PushNotification notification = this.CreateNotification(); NotificationAccount <Guid> account = test.AddNotificationAccount(); this.PushNotificationShouldFailAtEndPoint(mobileServiceClient); channel.SendAsync(account, notification).Wait(); this.AssertSentFailed(test, account, notification, NotificationErrorCode.RouteFailure); }
public void SchedulePushNotificationWithoutTimeZoneTest() { NotificationTest test = new NotificationTest(); NotificationScheduler <Guid> scheduler = this.CreateScheduler(test); PushNotification notification = this.CreateNotification(); NotificationAccount <Guid> account = test.AddNotificationAccount(Guid.NewGuid(), timeZone: null); DateTime deliveryDate = DateTime.UtcNow.AddDays(1); scheduler.Schedule(account.AccountId, notification, deliveryDate); DateTimeOffset expectedDeliveryDate = deliveryDate.ToDateTimeOffset("US/Eastern"); this.AssertNotificationScheduledSuccessful(test, account, notification, expectedDeliveryDate); }
public void SendOverDueNotificationTest() { NotificationTest test = new NotificationTest(); INotificationChannel channel; NotificationScheduler <Guid> scheduler = this.CreateScheduler(test, out channel); DateTime deliveryDate = DateTime.UtcNow; NotificationAccount <Guid> account = test.AddNotificationAccount(Guid.NewGuid(), "US/Pacific"); PushNotification notificationToSend = this.CreateNotification(); test.NotificationRepository.GetScheduledNotifications(Arg.Any <DateTime>()).Returns(new[] { new ScheduledNotification <Guid>(account.AccountId, notificationToSend, DateTime.UtcNow) }); scheduler.SendScheduledNotifications(DateTime.UtcNow.AddDays(1)).Wait(); channel.Received().SendAsync(account, notificationToSend); test.NotificationRepository.Received().DeleteScheduledNotification(notificationToSend.Id); }