public void ClearArchive()
        {
            NotesController controller = new NotesController(_service);
            SetupControllerContext(controller, TestUser1);

            RedirectToRouteResult viewResult = controller.ClearArchive() as RedirectToRouteResult;

            Assert.IsTrue(_saveCalled);
            Assert.AreEqual(17, _service.MockNotes.List.Count);
            Assert.IsNotNull(viewResult, "viewResult");
        }
        public void ArchiveListPartial()
        {
            NotesController controller = new NotesController(_service);
            SetupControllerContext(controller, TestUser1);

            PartialViewResult viewResult = controller.ArchiveListPartial();
            Assert.IsNotNull(viewResult, "viewResult");

            ViewModel<List<Note>> viewModel = viewResult.Model as ViewModel<List<Note>>;
            Assert.IsNotNull(viewModel, "viewModel");

            Assert.AreEqual(3, viewModel.Model.Count);
        }
        public void ClearArchivePartial()
        {
            NotesController controller = new NotesController(_service);
            SetupControllerContext(controller, TestUser2);

            PartialViewResult viewResult = controller.ClearArchivePartial();

            Assert.IsTrue(_saveCalled);
            Assert.AreEqual(16, _service.MockNotes.List.Count);

            Assert.IsNotNull(viewResult, "viewResult");

            ViewModel<List<Note>> viewModel = viewResult.Model as ViewModel<List<Note>>;
            Assert.IsNotNull(viewModel, "viewModel");

            Assert.AreEqual(0, viewModel.Model.Count);
        }
        public void CreateNoteEmptyParamOverload()
        {
            NotesController controller = new NotesController(_service);
            SetupControllerContext(controller, TestUser2);

            ViewResult viewResult = controller.CreateNote() as ViewResult;
            Assert.IsNotNull(viewResult, "viewResult");

            ViewModel<Note> viewModel = viewResult.Model as ViewModel<Note>;
            Assert.IsNotNull(viewModel, "viewModel");
        }
        public void OpenLink()
        {
            NotesController controller = new NotesController(_service);

            RedirectResult viewResult = controller.OpenLink("www.google.ru") as RedirectResult;
            Assert.IsNotNull(viewResult, "viewResult");

            Assert.AreEqual("http://www.google.ru", viewResult.Url);
        }
        public void NoteToArchive()
        {
            NotesController controller = new NotesController(_service);
            SetupControllerContext(controller, TestUser1);

            Guid guid = GetGuid(8);
            PartialViewResult viewResult = controller.NoteToArchive(guid);
            Assert.IsTrue(_saveCalled);
            Assert.IsTrue(_service.MockNotes.List.First(i => i.ID_Note == guid).IsArchive);

            Assert.IsNotNull(viewResult, "viewResult");

            ViewModel<List<Note>> viewModel = viewResult.Model as ViewModel<List<Note>>;
            Assert.IsNotNull(viewModel, "viewModel");

            Assert.AreEqual(6, viewModel.Model.Count);
        }
        public void CreateNotePartialWithParamOverloadFailCreate()
        {
            NotesController controller = new NotesController(_service);
            SetupControllerContext(controller, TestUser3);

            ViewModel<Note> note = new ViewModel<Note>();
            controller.ModelState.AddModelError("testError", "Test error message");

            PartialViewResult viewResult = controller.CreateNotePartial(note);

            Assert.AreEqual(20, _service.MockNotes.List.Count);
            Assert.IsFalse(_saveCalled);
            Assert.IsNotNull(viewResult, "viewResult");

            ViewModel<Note> viewModel = viewResult.Model as ViewModel<Note>;
            Assert.IsNotNull(viewModel, "viewModel");
        }
        public void CreateNotePartialParamOverloadSuccessCreate()
        {
            NotesController controller = new NotesController(_service);
            SetupControllerContext(controller, TestUser3);

            ViewModel<Note> model = new ViewModel<Note>(new Note
                                                            {
                                                                Text = "new note"
                                                            });
            PartialViewResult viewResult = controller.CreateNotePartial(model);
            Note note = _service.MockNotes.List.Last();

            Assert.AreEqual(21, _service.MockNotes.List.Count);
            Assert.AreEqual(TestUser3, note.User);
            Assert.AreEqual("new note", note.Text);
            Assert.IsTrue(_saveCalled);

            Assert.IsNotNull(viewResult, "viewResult");

            ViewModel<List<Note>> viewModel = viewResult.Model as ViewModel<List<Note>>;
            Assert.IsNotNull(viewModel, "viewModel");

            Assert.AreEqual(1, viewModel.Model.Count);
        }