コード例 #1
0
        public void UpdateOn_NoSupportedUpdateInfoAvailable_GivesMessageBox()
        {
            // Setup
            var mockRepository = new MockRepository();
            var mainWindow     = mockRepository.Stub <IMainWindow>();
            var inquiryHelper  = mockRepository.Stub <IInquiryHelper>();

            mockRepository.ReplayAll();

            string messageBoxTitle = null, messageBoxText = null;

            DialogBoxHandler = (name, wnd) =>
            {
                var messageBox = new MessageBoxTester(wnd);

                messageBoxText  = messageBox.Text;
                messageBoxTitle = messageBox.Title;

                messageBox.ClickOk();
            };

            var updateHandler = new GuiUpdateHandler(mainWindow, new UpdateInfo[]
            {
                new UpdateInfo <double>()
            }, inquiryHelper);

            // Call
            updateHandler.UpdateOn(string.Empty);

            // Assert
            Assert.AreEqual("Fout", messageBoxTitle);
            Assert.AreEqual("Geen enkele 'Updater' is beschikbaar voor dit element.", messageBoxText);
            mockRepository.VerifyAll();
        }
コード例 #2
0
        public void UpdateOn_MultipleSupportedUpdateInfoAvailable_ShowsDialogWithOptions()
        {
            // Setup
            const string updateInfoAName = "nameA";
            var          updateInfoA     = new UpdateInfo <object>
            {
                Name = updateInfoAName
            };
            const string updateInfoBName = "nameB";
            var          updateInfoB     = new UpdateInfo <object>
            {
                Name = updateInfoBName
            };

            var mockRepository = new MockRepository();
            var dialogParent   = mockRepository.Stub <IViewParent>();
            var inquiryHelper  = mockRepository.Stub <IInquiryHelper>();

            mockRepository.ReplayAll();

            var listViewItems = new ListViewItem[0];

            DialogBoxHandler = (name, wnd) =>
            {
                using (new FormTester(name))
                {
                    var listView = (ListView) new ControlTester("listViewItemTypes").TheObject;
                    listViewItems = listView.Items.OfType <ListViewItem>().ToArray();
                }
            };

            var updateHandler = new GuiUpdateHandler(dialogParent, new UpdateInfo[]
            {
                updateInfoA,
                updateInfoB
            }, inquiryHelper);

            // Call
            updateHandler.UpdateOn(new object());

            // Assert
            Assert.AreEqual(2, listViewItems.Length);
            Assert.AreEqual(updateInfoAName, listViewItems[0].Name);
            Assert.AreEqual(updateInfoBName, listViewItems[1].Name);
            mockRepository.VerifyAll();
        }
コード例 #3
0
        public void UpdateOn_SupportedUpdateInfoAvailableVerifyUpdatesUnsuccessful_ActivityNotCreated()
        {
            // Setup
            var generator      = new FileFilterGenerator();
            var targetObject   = new object();
            var mockRepository = new MockRepository();
            var dialogParent   = mockRepository.Stub <IViewParent>();
            var inquiryHelper  = mockRepository.Stub <IInquiryHelper>();

            inquiryHelper.Stub(ih => ih.GetSourceFileLocation(generator.Filter)).Return("/some/path");
            var fileImporter = mockRepository.Stub <IFileImporter>();

            mockRepository.ReplayAll();

            var isVerifyUpdatedCalled = false;

            var updateHandler = new GuiUpdateHandler(dialogParent, new UpdateInfo[]
            {
                new UpdateInfo <object>
                {
                    CreateFileImporter = (o, s) =>
                    {
                        Assert.Fail("CreateFileImporter is not expected to be called when VerifyUpdates function returns false.");
                        return(fileImporter);
                    },
                    FileFilterGenerator = generator,
                    VerifyUpdates       = o =>
                    {
                        Assert.AreSame(o, targetObject);
                        isVerifyUpdatedCalled = true;
                        return(false);
                    }
                }
            }, inquiryHelper);

            // Call
            updateHandler.UpdateOn(targetObject);

            // Assert
            Assert.IsTrue(isVerifyUpdatedCalled);
            mockRepository.VerifyAll();
        }
コード例 #4
0
        public void UpdateOn_InquiryHelperReturnsNoPathAndCurrentPathSet_UpdateCancelledWithLogMessage()
        {
            // Setup
            var generator    = new FileFilterGenerator();
            var targetObject = new object();

            var mockRepository = new MockRepository();
            var dialogParent   = mockRepository.Stub <IViewParent>();
            var inquiryHelper  = mockRepository.Stub <IInquiryHelper>();

            inquiryHelper.Stub(ih => ih.GetSourceFileLocation(generator.Filter)).Return(null);
            var fileImporter = mockRepository.Stub <IFileImporter>();

            mockRepository.ReplayAll();

            const string currentPath   = "FilePath/to/Update";
            var          updateHandler = new GuiUpdateHandler(dialogParent, new UpdateInfo[]
            {
                new UpdateInfo <object>
                {
                    CreateFileImporter = (o, s) =>
                    {
                        Assert.Fail("CreateFileImporter is not expected to be called when no file path is chosen.");
                        return(fileImporter);
                    },
                    FileFilterGenerator = generator,
                    VerifyUpdates       = o => true,
                    CurrentPath         = o => currentPath
                }
            }, inquiryHelper);

            // Call
            Action call = () => updateHandler.UpdateOn(targetObject);

            // Assert
            string expectedLogMessage = $"Bijwerken van gegevens in '{currentPath}' is geannuleerd.";
            Tuple <string, LogLevelConstant> expectedLogMessageAndLevel = Tuple.Create(expectedLogMessage,
                                                                                       LogLevelConstant.Info);

            TestHelper.AssertLogMessageWithLevelIsGenerated(call, expectedLogMessageAndLevel);
            mockRepository.VerifyAll();
        }
コード例 #5
0
        public void UpdateOn_SupportedUpdateInfoAvailableVerifyUpdatesSuccessful_ExpectedUpdateInfoFunctionsCalledActivityCreated()
        {
            // Setup
            const string filePath     = "/some/path";
            var          generator    = new FileFilterGenerator();
            var          targetObject = new object();

            var mockRepository = new MockRepository();
            var inquiryHelper  = mockRepository.Stub <IInquiryHelper>();

            inquiryHelper.Stub(ih => ih.GetSourceFileLocation(generator.Filter)).Return(filePath);
            var fileImporter = mockRepository.Stub <IFileImporter>();

            mockRepository.ReplayAll();

            const string dataDescription            = "Random data";
            var          isCreateFileImporterCalled = false;
            var          isVerifyUpdatedCalled      = false;

            DialogBoxHandler = (name, wnd) =>
            {
                // Activity closes itself
            };

            using (var form = new TestViewParentForm())
            {
                var updateHandler = new GuiUpdateHandler(form, new UpdateInfo[]
                {
                    new UpdateInfo <object>
                    {
                        Name = dataDescription,
                        CreateFileImporter = (o, s) =>
                        {
                            Assert.AreSame(o, targetObject);
                            Assert.AreEqual(filePath, s);
                            isCreateFileImporterCalled = true;
                            return(fileImporter);
                        },
                        FileFilterGenerator = generator,
                        VerifyUpdates       = o =>
                        {
                            Assert.AreSame(o, targetObject);
                            isVerifyUpdatedCalled = true;
                            return(true);
                        }
                    }
                }, inquiryHelper);

                // Call
                Action call = () => updateHandler.UpdateOn(targetObject);

                // Assert
                TestHelper.AssertLogMessagesAreGenerated(call, new[]
                {
                    $"Bijwerken van '{dataDescription}' is gestart.",
                    $"Bijwerken van '{dataDescription}' is mislukt."
                });
            }

            // Assert
            Assert.IsTrue(isCreateFileImporterCalled);
            Assert.IsTrue(isVerifyUpdatedCalled);
            mockRepository.VerifyAll();
        }