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); } }