public ViewVocabularyPresenterTests()
        {
            //First Create the Fake Views and Repositories
            editView = new FakeEditVocabularyView();
            listView = new FakeVocabulariesListView();
            viewView = new FakeViewVocabularyView();
            FakeVocabularyRepository vocabularyRepository = new FakeVocabularyRepository();
            FakeScopeTypeRepository scopeTypeRepository = new FakeScopeTypeRepository();

            //Create the Presenters
            editPresenter = new EditVocabularyPresenter(editView, vocabularyRepository, scopeTypeRepository);
            listPresenter = new VocabularyListPresenter(listView, vocabularyRepository, scopeTypeRepository);
            viewPresenter = new ViewVocabularyPresenter(viewView, vocabularyRepository, scopeTypeRepository);
        }
Пример #2
0
        public void EditVocabularyPresenter_SaveTerm_Clears_SelectedTerm()
        {
            // Arrange
            var mockView  = new Mock <IEditVocabularyView>();
            var editModel = new EditVocabularyModel {
                Term = new Term {
                    TermId = Constants.TERM_UpdateTermId
                }
            };

            mockView.Setup(v => v.Model).Returns(editModel);

            EditVocabularyPresenter presenter = CreatePresenter(mockView, true);

            // Act
            mockView.Raise(v => v.SaveTerm += null, EventArgs.Empty);

            // Assert
            mockView.Verify(v => v.ClearSelectedTerm());
        }
Пример #3
0
        public void EditVocabularyPresenter_DeleteVocabulary_Redirects_To_Vocabulary_List_View()
        {
            // Arrange
            var mockView = new Mock <IEditVocabularyView>();

            mockView.Setup(v => v.Model).Returns(new EditVocabularyModel());
            var destinationUrl = Globals.NavigateURL(Constants.TAB_ValidId);

            var mockHttpResponse = new Mock <HttpResponseBase>();

            EditVocabularyPresenter presenter = CreatePresenter(mockView, mockHttpResponse, Constants.VOCABULARY_DeleteVocabularyId, true);

            presenter.TabId = Constants.TAB_ValidId;

            // Act
            mockView.Raise(v => v.Delete += null, EventArgs.Empty);

            // Assert
            mockHttpResponse.Verify(r => r.Redirect(destinationUrl));
        }
Пример #4
0
        public void EditVocabularyPresenter_SaveVocabulary_Saves_If_Vocabulary_Valid()
        {
            // Arrange
            var mockView  = new Mock <IEditVocabularyView>();
            var editModel = new EditVocabularyModel {
                Vocabulary = new Vocabulary {
                    VocabularyId = Constants.VOCABULARY_UpdateVocabularyId, ScopeTypeId = 1
                }
            };

            mockView.Setup(v => v.Model).Returns(editModel);

            EditVocabularyPresenter presenter = CreatePresenter(mockView, Constants.VOCABULARY_UpdateVocabularyId, true);

            // Act
            mockView.Raise(v => v.Save += null, EventArgs.Empty);

            // Assert
            Mock.Get(presenter.VocabularyController).Verify(r => r.UpdateVocabulary(It.Is <Vocabulary>(v => v.VocabularyId == Constants.VOCABULARY_UpdateVocabularyId)));
        }
Пример #5
0
        public void EditVocabularyPresenter_SaveTerm_Refreshes_Terms_List()
        {
            // Arrange
            var mockView  = new Mock <IEditVocabularyView>();
            var editModel = new EditVocabularyModel {
                Term = new Term {
                    TermId = Constants.TERM_UpdateTermId
                }
            };

            mockView.Setup(v => v.Model).Returns(editModel);

            EditVocabularyPresenter presenter = CreatePresenter(mockView, true);

            // Act
            mockView.Raise(v => v.SaveTerm += null, EventArgs.Empty);

            // Assert
            mockView.Verify(v => v.BindTerms(It.IsAny <IEnumerable <Term> >(), presenter.IsHeirarchical, true));
        }
Пример #6
0
        public void EditVocabularyPresenter_Correctly_Sets_TermEditor_Mode_When_Term_Is_Selected()
        {
            // Arrange
            var mockView = new Mock <IEditVocabularyView>();

            var editModel = new EditVocabularyModel {
                Term = new Term {
                    TermId = Constants.TERM_ValidTermId
                }
            };

            mockView.Setup(v => v.Model).Returns(editModel);

            EditVocabularyPresenter presenter = CreatePresenter(mockView, true);

            // Act
            mockView.Raise(v => v.SelectTerm += null, new TermsEventArgs(editModel.Term));

            // Assert
            mockView.Verify(v => v.SetTermEditorMode(false, Constants.TERM_ValidTermId));
        }
Пример #7
0
        public void EditVocabularyPresenter_Loads_SelectedTerm_When_Term_Is_Selected()
        {
            // Arrange
            var mockView = new Mock <IEditVocabularyView>();

            var editModel = new EditVocabularyModel {
                Term = new Term {
                    TermId = Constants.TERM_ValidTermId
                }
            };

            mockView.Setup(v => v.Model).Returns(editModel);

            EditVocabularyPresenter presenter = CreatePresenter(mockView, true);

            // Act
            mockView.Raise(v => v.SelectTerm += null, new TermsEventArgs(editModel.Term));

            // Assert
            Mock.Get(presenter.View).Verify(v => v.BindTerm(editModel.Term, It.IsAny <IEnumerable <Term> >(), presenter.IsHeirarchical, false, false));
        }
Пример #8
0
        public void EditVocabularyPresenter_SaveTerm_Updates_Term_If_Term_Valid()
        {
            // Arrange
            var mockView = new Mock <IEditVocabularyView>();

            var editModel = new EditVocabularyModel {
                Term = new Term {
                    TermId = Constants.TERM_UpdateTermId
                }
            };

            mockView.Setup(v => v.Model).Returns(editModel);

            EditVocabularyPresenter presenter = CreatePresenter(mockView, true);

            // Act
            mockView.Raise(v => v.SaveTerm += null, EventArgs.Empty);

            // Assert
            Mock.Get(presenter.TermController).Verify(r => r.UpdateTerm(It.Is <Term>(t => t.TermId == Constants.TERM_UpdateTermId)));
        }
Пример #9
0
        protected EditVocabularyPresenter CreatePresenter(Mock <IEditVocabularyView> mockView, Mock <HttpResponseBase> mockHttpResponse, Mock <HttpRequestBase> mockHttpRequest, bool initialize)
        {
            MockHelper.CreateMockScopeTypeController();

            var mockHttpContext = new Mock <HttpContextBase>();

            mockHttpContext.Setup(h => h.Response).Returns(mockHttpResponse.Object);
            mockHttpContext.Setup(h => h.Request).Returns(mockHttpRequest.Object);

            var presenter = new EditVocabularyPresenter(mockView.Object, MockHelper.CreateMockVocabularyController().Object, MockHelper.CreateMockTermController().Object)
            {
                HttpContext = mockHttpContext.Object
            };

            if (initialize)
            {
                mockView.Raise(v => v.Initialize += null, EventArgs.Empty);
                mockView.Raise(v => v.Load       += null, EventArgs.Empty);
            }

            return(presenter);
        }
Пример #10
0
        public void EditVocabularyPresenter_SaveVocabulary_Does_Not_Save_If_Vocabulary_Invalid()
        {
            // Arrange
            var mockView  = new Mock <IEditVocabularyView>();
            var editModel = new EditVocabularyModel {
                Vocabulary = new Vocabulary {
                    VocabularyId = Constants.VOCABULARY_UpdateVocabularyId, ScopeTypeId = 1
                }
            };

            mockView.Setup(v => v.Model).Returns(editModel);

            EditVocabularyPresenter presenter = CreatePresenter(mockView, Constants.VOCABULARY_UpdateVocabularyId, true);

            Mock <ObjectValidator> mockValidator = MockHelper.EnableInvalidMockValidator(presenter.Validator, editModel.Vocabulary);

            // Act
            mockView.Raise(v => v.Save += null, EventArgs.Empty);

            // Assert
            Mock.Get(presenter.VocabularyController).Verify(r => r.UpdateVocabulary(editModel.Vocabulary), Times.Never());
        }
Пример #11
0
        public void EditVocabularyPresenter_SaveVocabulary_Validates_Vocabulary()
        {
            // Arrange
            var mockView  = new Mock <IEditVocabularyView>();
            var editModel = new EditVocabularyModel {
                Vocabulary = new Vocabulary {
                    VocabularyId = Constants.VOCABULARY_UpdateVocabularyId, ScopeTypeId = 1
                }
            };

            mockView.Setup(v => v.Model).Returns(editModel);

            EditVocabularyPresenter presenter = CreatePresenter(mockView, Constants.VOCABULARY_UpdateVocabularyId, true);

            Mock <ObjectValidator> mockValidator = MockHelper.EnableValidMockValidator(presenter.Validator, editModel.Vocabulary);

            // Act
            mockView.Raise(v => v.Save += null, EventArgs.Empty);

            // Assert
            mockValidator.Verify(v => v.ValidateObject(editModel.Vocabulary));
        }
Пример #12
0
        public void EditVocabularyPresenter_SaveTerm_Does_Not_Save_If_Term_Invalid()
        {
            // Arrange
            var mockView = new Mock <IEditVocabularyView>();

            var editModel = new EditVocabularyModel {
                Term = new Term {
                    TermId = Constants.TERM_UpdateTermId
                }
            };

            mockView.Setup(v => v.Model).Returns(editModel);

            EditVocabularyPresenter presenter = CreatePresenter(mockView, true);

            Mock <ObjectValidator> mockValidator = MockHelper.EnableInvalidMockValidator(presenter.Validator, editModel.Term);

            // Act
            mockView.Raise(v => v.SaveTerm += null, EventArgs.Empty);

            // Assert
            Mock.Get(presenter.TermController).Verify(r => r.UpdateTerm(It.IsAny <Term>()), Times.Never());
        }
Пример #13
0
        public void EditVocabularyPresenter_SaveTerm_Validates_Term()
        {
            // Arrange
            var mockView = new Mock <IEditVocabularyView>();

            var editModel = new EditVocabularyModel {
                Term = new Term {
                    TermId = Constants.TERM_UpdateTermId
                }
            };

            mockView.Setup(v => v.Model).Returns(editModel);

            EditVocabularyPresenter presenter = CreatePresenter(mockView, true);

            Mock <ObjectValidator> mockValidator = MockHelper.EnableValidMockValidator(presenter.Validator, editModel.Term);

            // Act
            mockView.Raise(v => v.SaveTerm += null, EventArgs.Empty);

            // Assert
            mockValidator.Verify(v => v.ValidateObject(It.IsAny <Term>()));
        }
        protected EditVocabularyPresenter CreatePresenter(Mock<IEditVocabularyView> mockView, Mock<HttpResponseBase> mockHttpResponse, Mock<HttpRequestBase> mockHttpRequest, bool initialize)
        {
            MockHelper.CreateMockScopeTypeController();

            var mockHttpContext = new Mock<HttpContextBase>();
            mockHttpContext.Setup(h => h.Response).Returns(mockHttpResponse.Object);
            mockHttpContext.Setup(h => h.Request).Returns(mockHttpRequest.Object);

            var presenter = new EditVocabularyPresenter(mockView.Object, MockHelper.CreateMockVocabularyController().Object, MockHelper.CreateMockTermController().Object)
                                {HttpContext = mockHttpContext.Object};

            if (initialize)
            {
                mockView.Raise(v => v.Initialize += null, EventArgs.Empty);
                mockView.Raise(v => v.Load += null, EventArgs.Empty);
            }

            return presenter;
        }