Пример #1
0
        public void ExportCommand()
        {
            // arrange
            var exportUtility = new ExportUtility();

            var exportViewModel = new ExportOptionsViewModel();
            exportUtility.TheExportOptionsViewModel = new Lazy<ExportOptionsViewModel>(() => exportViewModel);

            var systemOptionsInfo = Mock.Create<ISystemOptionsInfo>(Behavior.Loose);
            Mock.Arrange(() => systemOptionsInfo.RestrictExportTo).Returns(10000);
            Mock.Arrange(() => SystemOptionsInfo.SystemOptions).Returns(systemOptionsInfo);

            Mock.Arrange(() => Utils.CurrentUserHasAdministratorRights).Returns(true);

            var popupFactory = Mock.Create<PopupFactory>(Behavior.Loose);
            var popupBuilder = new PopupBuilder();
            Mock.Arrange(() => popupBuilder.Show(Arg.IsAny<Action>(), Arg.IsAny<Func<bool>>())).DoInstead((Action ok, Action cancel) => ok());
            Mock.Arrange(() => popupFactory.Popup()).Returns(popupBuilder);

            exportUtility.ThePopupFactory = new Lazy<PopupFactory>(() => popupFactory);

            Mock.Arrange(() => Arg.IsAny<SaveFileDialog>().ShowDialog()).Returns(true);

            var called = false;
            Action onAgreedToSaveFile = () => { called = true; };
            
            // act
            exportUtility.ExportSetup(PageOrientation.Portrait, 1000, onAgreedToSaveFile );

            // assert
            Assert.IsTrue(called); // Important. This method must be called to download the full list of info objects, together with Applied Filter, if this filter exists
            Assert.AreEqual(PageOrientation.Portrait, exportViewModel.PageOrientation);

            // act
            exportUtility.ExportSetup(PageOrientation.Landscape, 1000, onAgreedToSaveFile);

            // assert
            Assert.AreEqual(PageOrientation.Landscape, exportViewModel.PageOrientation);

            // arrange
            called = false;
            Mock.Arrange(() => Arg.IsAny<SaveFileDialog>().ShowDialog()).Returns(false);

            // act
            exportUtility.ExportSetup(PageOrientation.Landscape, 1000, onAgreedToSaveFile);

            // assert
            Assert.IsFalse(called);
        }
Пример #2
0
        public void ExportCommand()
        {
            // arrange
            var vm = GetNewSearchListVm();

            var exportUtility = new ExportUtility();
            Mock.Arrange(() => exportUtility.ExportRecordCount).Returns(int.MaxValue);

            Mock.Arrange(() => exportUtility.ExportSetup(PageOrientation.Landscape, Arg.IsAny<int>(), Arg.IsAny<Action>()))
                .DoInstead<PageOrientation, int, Action>((orientation, totalRowCount, action) => action());

            vm.TheExportUtility = new Lazy<ExportUtility>(() => exportUtility);

            Mock.Arrange(() => vm.PageSize).Returns(25);
            Mock.Arrange(() => vm.PageIndex).Returns(10);

            var called = false;
            Mock.Arrange(() => vm.RefreshSearchList(Arg.IsAny<IFilterViewModel>())).DoInstead(() => called = true);

            // act
            vm.ExportCommand.Execute(PageOrientation.Landscape);

            // assert
            Assert.IsTrue(called);

            var privateAccessor = new PrivateAccessor(vm);
            Assert.AreEqual(25, privateAccessor.GetField("_tempPageSize"));
            Assert.AreEqual(10, privateAccessor.GetField("_tempPageIndex"));

            Assert.AreEqual(int.MaxValue, privateAccessor.GetField("_pageSize"));
            Assert.AreEqual(0, privateAccessor.GetField("_currentPageNumber"));
        }
        public void ExportDataGrid()
        {
            // arrange
            var vm = new ProcessSearchGridGadgetGridTabViewModel
                {
                    ExportGridControl = new GridViewDataControl()
                };

            var exportUtility = new ExportUtility();
            Mock.Arrange(() => exportUtility.ExportRecordCount).Returns(int.MaxValue);

            Mock.Arrange(() => exportUtility.ExportSetup(null, Arg.IsAny<int>(), Arg.IsAny<Action>()))
                .DoInstead<object, int, Action>((orientation, totalRowCount, action) => action());

            vm.TheExportUtility = new Lazy<ExportUtility>(() => exportUtility);

            var privateAccessor = new PrivateAccessor(vm);
            privateAccessor.SetField("_currentPageNumber", 10);
            privateAccessor.SetField("_pageSize", 25);

            var called = false;
            Mock.Arrange(() => vm.RefreshView()).DoInstead(() => called = true);

            // act
            vm.ExportDataGrid();

            // assert
            Assert.IsTrue(called);

            Assert.AreEqual(10, privateAccessor.GetField("_tempCurrentPageNumber"));
            Assert.AreEqual(25, privateAccessor.GetField("_tempPageSize"));

            Assert.AreEqual(0, privateAccessor.GetField("_currentPageNumber"));
            Assert.AreEqual(int.MaxValue, privateAccessor.GetField("_pageSize"));

            // arrange
            called = false;
            vm.ExportGridControl = null;
            
            var popupFactory = new PopupFactory();

            var notifyFailureCalled = false;
            Mock.Arrange(() => popupFactory.NotifyFailure(LanguageService.Translate("Msg_OpenGridViewBeforeExport"), "Popup_Error", 3, false)).DoInstead(() => notifyFailureCalled = true);

            vm.ThePopupFactory = popupFactory;

            // act
            vm.ExportDataGrid();
            
            // assert
            Assert.IsTrue(notifyFailureCalled);
            Assert.IsFalse(called);
        }