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);
        }
 public void PropertiesTest()
 {
     var vm = new ProcessSearchGridGadgetGridTabViewModel();
     TestsHelper.TestPublicDeclaredPropertiesGetSet(vm, true, x=>x.PageIndex, x=>x.CurrentPageNumber);
 }
        public void OnAfterDataRefreshed()
        {
            var vm = new ProcessSearchGridGadgetGridTabViewModel();

            Mock.Arrange(() => vm.ProcessSystemName).Returns("eCar_p");

            var infoClass = Mock.Create<IInfoClass>(Behavior.Loose);

            var collectionViewSource = new CollectionViewSource();
            Mock.Arrange(() => collectionViewSource.Source).Returns(new List<IInfoClass> { infoClass });

            Mock.Arrange(() => vm.InfoList).Returns(collectionViewSource);

            var exportUtility = new ExportUtility();

            var exportStartWasCalled = false;
            Mock.Arrange(() => exportUtility.ExportStart(Arg.AnyString, Arg.IsAny<GridViewDataControl>(), Arg.AnyString)).DoInstead(() => exportStartWasCalled = true);

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

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

            var privateAccessor = new PrivateAccessor(vm);
            privateAccessor.SetField("_tempCurrentPageNumber", 10);
            privateAccessor.SetField("_tempPageSize", 25);

            // act
            privateAccessor.CallMethod("OnAfterDataRefreshed", new[] { new object(), EventArgs.Empty });

            // assert
            Assert.IsTrue(exportStartWasCalled);
            Assert.IsTrue(refreshViewWasCalled);

            Assert.AreEqual(10, privateAccessor.GetField("_currentPageNumber"));
            Assert.AreEqual(25, privateAccessor.GetField("_pageSize"));

            // arrange
            exportStartWasCalled = false;
            Mock.Arrange(() => collectionViewSource.Source).ReturnsCollection(new List<IInfoClass>());

            // act
            privateAccessor.CallMethod("OnAfterDataRefreshed", new[] { new object(), EventArgs.Empty });

            // assert
            Assert.IsFalse(exportStartWasCalled);
        }