public void EditTest() { // Создадим пользователя var account = TestHelper.GetTestAccount(); var user = TestHelper.CreateTestUser(account.Id); var dispatcher = TestHelper.GetDispatcherClient(); var channels = new[] { SubscriptionChannel.Email, SubscriptionChannel.Sms, SubscriptionChannel.Http }; foreach (var channel in channels) { // Получим подписку по умолчанию var response = dispatcher.CreateSubscription(account.Id, new CreateSubscriptionRequestData() { UserId = user.Id, Object = SubscriptionObject.Default, Channel = channel }); var defaultSubscription = response.Data; // Изменим подписку по умолчанию SubscriptionEditModel model; using (var controller = new SubscriptionsController(account.Id, user.Id)) { var result = (ViewResultBase)controller.Edit(defaultSubscription.Id); model = (SubscriptionEditModel)result.Model; } model.ReturnUrl = "/"; model.IsEnabled = !model.IsEnabled; model.Color = ColorStatusSelectorValue.FromEventImportance(EventImportance.Success); model.MinimumDuration = TimeSpan.FromSeconds(10); model.ResendTime = TimeSpan.FromSeconds(20); using (var controller = new SubscriptionsController(account.Id, user.Id)) { controller.Edit(model); } // Проверим подписку по умолчанию var response2 = dispatcher.CreateSubscription(account.Id, new CreateSubscriptionRequestData() { UserId = user.Id, Object = SubscriptionObject.Default, Channel = channel }); var newDefaultSubscription = response2.Data; Assert.Equal(model.IsEnabled, newDefaultSubscription.IsEnabled); Assert.Equal(EventImportance.Success, newDefaultSubscription.Importance); Assert.Equal(10, newDefaultSubscription.DurationMinimumInSeconds); Assert.Equal(20, newDefaultSubscription.ResendTimeInSeconds); } }
public void AdminTest() { // Создадим пользователя var account = TestHelper.GetTestAccount(); var user = TestHelper.CreateTestUser(account.Id); var admin = TestHelper.GetAccountAdminUser(account.Id); // Проверим, что админ может видеть чужие подписки SubscriptionListModel model; using (var controller = new SubscriptionsController(account.Id, admin.Id)) { // прочитаем подписки админа var result = (ViewResultBase)controller.Index(user.Id); model = (SubscriptionListModel)result.Model; } Assert.Equal(user.Id, model.UserId); Assert.True(model.Subscriptions.Length > 0); Assert.True(model.Subscriptions.All(t => t.UserId == user.Id)); // откроем подписку админа на редактирование var userSubscription = model.Subscriptions.First(); SubscriptionEditModel editModel = null; using (var controller = new SubscriptionsController(account.Id, user.Id)) { var result = (ViewResultBase)controller.Edit(userSubscription.Id); editModel = (SubscriptionEditModel)result.Model; Assert.Null(editModel.MinimumDuration); } // сохраним изменения в подписке пользователя using (var controller = new SubscriptionsController(account.Id, admin.Id)) { editModel.MinimumDuration = TimeSpan.FromSeconds(10); controller.Edit(editModel); } // проверим, что настройки подписки изменились using (var accountDbContext = account.CreateAccountDbContext()) { var subscription = accountDbContext.Subscriptions.Find(userSubscription.Id); Assert.Equal(10, subscription.DurationMinimumInSeconds); } }