Inheritance: IConfigurationController, IFormController
示例#1
0
        internal static void Main()
        {
            try {
                if (!IsSingleInstance())
                {
                    MessageBox.Show("You cannot run several instances of Settings Tool. The application will be terminated.", "Warning",
                                    MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }

                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);

                ConfigureLogger();

                IConfigurationController controller = new ConfigurationFormController(Facade.Instance, UIFactory.Instance);
                var view = new ConfigurationForm();
                controller.RegisterView(view);
                controller.PrepareView();

                // TODO move try/catch with AssemblyLoadException here
                Application.Run(view);
            } finally {
                CloseMutex();
            }
        }
        public void LoadDefaultConfiguration2OnStartupTest()
        {
            var config = new ServiceHostConfiguration();
            var coreServices = new[] { "Tests" };
            var customServices = new[] { "QualityCenter" };
            var viewMock = MockRepository.StrictMock<IConfigurationView>();

            Expect.Call(FacadeMock.CreateConfiguration()).Return(config);
            Expect.Call(viewMock.Controller).PropertyBehavior();
            Expect.Call(viewMock.GenerateSnapshotMenuItemEnabled).PropertyBehavior();
            Expect.Call(viewMock.NewFileMenuItemEnabled).PropertyBehavior();
            Expect.Call(viewMock.OpenFileMenuItemEnabled).PropertyBehavior();
            Expect.Call(viewMock.OptionsMenuItemEnabled).PropertyBehavior();
            Expect.Call(viewMock.SaveFileAsMenuItemEnabled).PropertyBehavior();
            Expect.Call(viewMock.SaveFileMenuItemEnabled).PropertyBehavior();
            Expect.Call(FacadeMock.AnyFileExists(ConfigurationFileNames)).Return(true);
            Expect.Call(FacadeMock.FileExists(Filename)).Return(false);
            Expect.Call(FacadeMock.FileExists(Filename2)).Return(true);
            Expect.Call(FacadeMock.LoadConfigurationFromFile(Filename2)).Return(config);
            Expect.Call(() => FacadeMock.ResetConnection());
            Expect.Call(uiFactoryMock.GetNextPage(GeneralPageKey, config, null)).IgnoreArguments().Return(null);
            Expect.Call(viewMock.HeaderText).PropertyBehavior();
            Expect.Call(viewMock.CurrentControl).PropertyBehavior();
            Expect.Call(uiFactoryMock.GetCoreServiceNames(config)).Return(coreServices);
            Expect.Call(uiFactoryMock.GetCustomServiceNames(config)).Return(customServices);
            Expect.Call(() => viewMock.SetServiceNodesAndRedraw(coreServices, customServices));
            Expect.Call(() => viewMock.SetCoreServiceNodesEnabled(false));

            MockRepository.ReplayAll();

            var controller = new ConfigurationFormController(FacadeMock, uiFactoryMock);
            controller.RegisterView(viewMock);
            controller.PrepareView();

            MockRepository.VerifyAll();
        }
        internal static void Main() {
            try {
                if(!IsSingleInstance()) {
                    MessageBox.Show("You cannot run several instances of Settings Tool. The application will be terminated.", "Warning",
                                    MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }

                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);

                ConfigureLogger();

                IConfigurationController controller = new ConfigurationFormController(Facade.Instance, UIFactory.Instance);
                var view = new ConfigurationForm();
                controller.RegisterView(view);
                controller.PrepareView();

                // TODO move try/catch with AssemblyLoadException here
                Application.Run(view);
            } finally {
                CloseMutex();
            }
        }
        public void SaveConfigurationToFileWithoutNameSelectionTest()
        {
            var config = new ServiceHostConfiguration();

            Expect.Call(FacadeMock.CreateConfiguration()).Return(config);
            Expect.Call(FacadeMock.SaveConfigurationToFile(config, Filename)).Return(new ConfigurationValidationResult());

            MockRepository.ReplayAll();

            var controller = new ConfigurationFormController(FacadeMock, uiFactoryMock);
            controller.SaveToFile(string.Empty);

            MockRepository.VerifyAll();
        }
        public void SaveConfigurationToFileTest()
        {
            var viewMock = MockRepository.StrictMock<IConfigurationView>();

            ExpectRegisterAndPrepareView(viewMock);
            Expect.Call(FacadeMock.SaveConfigurationToFile(null, Filename)).IgnoreArguments().Return(new ConfigurationValidationResult());

            MockRepository.ReplayAll();

            var controller = new ConfigurationFormController(FacadeMock, uiFactoryMock);
            controller.RegisterView(viewMock);
            controller.PrepareView();
            controller.SaveToFile(Filename);

            MockRepository.VerifyAll();
        }
        public void SaveConfigurationToFileInvalidDataTest()
        {
            var viewMock = MockRepository.StrictMock<IConfigurationView>();

            ExpectRegisterAndPrepareView(viewMock);
            var validationResult = new ConfigurationValidationResult();
            var invalidEntity = new TestServiceEntity();
            validationResult.AddEntity(invalidEntity, new List<string>());

            Expect.Call(FacadeMock.SaveConfigurationToFile(null, Filename)).IgnoreArguments().Return(validationResult);
            Expect.Call(uiFactoryMock.ResolvePageNameByEntity(invalidEntity)).Return("Tests");
            Expect.Call(() => viewMock.ShowErrorMessage(null)).IgnoreArguments();

            MockRepository.ReplayAll();

            var controller = new ConfigurationFormController(FacadeMock, uiFactoryMock);
            controller.RegisterView(viewMock);
            controller.PrepareView();
            controller.SaveToFile(Filename);

            MockRepository.VerifyAll();
        }
        public void RegisterNullViewTest()
        {
            var facadeStub = MockRepository.Stub<IFacade>();
            var uiFactoryStub = MockRepository.Stub<IUIFactory>();
            var controller = new ConfigurationFormController(facadeStub, uiFactoryStub);

            controller.RegisterView(null);
        }
        public void RegisterAndPrepareViewTest()
        {
            var viewMock = MockRepository.StrictMock<IConfigurationView>();

            ExpectRegisterAndPrepareView(viewMock);

            MockRepository.ReplayAll();

            var controller = new ConfigurationFormController(FacadeMock, uiFactoryMock);
            controller.RegisterView(viewMock);
            Assert.AreEqual(controller.View, viewMock);
            controller.PrepareView();

            MockRepository.VerifyAll();
        }
        public void LoadValidConfigurationFileTest()
        {
            var config = new ServiceHostConfiguration();
            var coreServices = new[] { "Tests" };
            var customServices = new[] { "QualityCenter" };

            var viewMock = MockRepository.StrictMock<IConfigurationView>();

            Expect.Call(FacadeMock.CreateConfiguration()).Return(config);
            Expect.Call(viewMock.Controller).Repeat.Once().PropertyBehavior();
            Expect.Call(FacadeMock.LoadConfigurationFromFile(Filename)).Return(config);
            Expect.Call(() => FacadeMock.ResetConnection());
            Expect.Call(uiFactoryMock.GetNextPage(GeneralPageKey, config, null)).IgnoreArguments().Return(null);
            Expect.Call(viewMock.HeaderText).Repeat.Once().PropertyBehavior();
            Expect.Call(viewMock.CurrentControl).Repeat.Once().PropertyBehavior();
            Expect.Call(uiFactoryMock.GetCoreServiceNames(config)).Return(coreServices);
            Expect.Call(uiFactoryMock.GetCustomServiceNames(config)).Return(customServices);
            Expect.Call(() => viewMock.SetServiceNodesAndRedraw(coreServices, customServices));
            Expect.Call(() => viewMock.SetCoreServiceNodesEnabled(false));

            MockRepository.ReplayAll();

            var controller = new ConfigurationFormController(FacadeMock, uiFactoryMock);
            controller.RegisterView(viewMock);
            controller.LoadFromFile(Filename);

            Assert.AreEqual(Filename, controller.CurrentFileName);

            MockRepository.VerifyAll();
        }
        public void LoadFileInvalidFilenameTest()
        {
            const string wrongFilename = "VersionOne.ServiceHost.exe.config.wrong";
            var config = new ServiceHostConfiguration();
            var viewMock = MockRepository.StrictMock<IConfigurationView>();

            Expect.Call(FacadeMock.CreateConfiguration()).Return(config);
            Expect.Call(viewMock.Controller).PropertyBehavior();
            Expect.Call(FacadeMock.LoadConfigurationFromFile(wrongFilename)).Throw(new InvalidFilenameException(string.Empty));
            Expect.Call(() => viewMock.ShowErrorMessage(string.Empty)).IgnoreArguments();

            MockRepository.ReplayAll();

            var controller = new ConfigurationFormController(FacadeMock, uiFactoryMock);
            controller.RegisterView(viewMock);
            controller.LoadFromFile(wrongFilename);

            MockRepository.VerifyAll();
        }
        public void LoadFileInvalidConfigurationDataTest()
        {
            var entity = new P4ServiceEntity();
            var config = new ServiceHostConfiguration(new BaseServiceEntity[] { entity });
            var viewMock = MockRepository.StrictMock<IConfigurationView>();

            Expect.Call(FacadeMock.CreateConfiguration()).Return(config);
            Expect.Call(viewMock.Controller).PropertyBehavior();
            Expect.Call(FacadeMock.LoadConfigurationFromFile(Filename)).Return(config);
            Expect.Call(FacadeMock.CreateConfiguration()).Return(new ServiceHostConfiguration());
            Expect.Call(() => viewMock.SetServiceNodesAndRedraw(null, null));
            Expect.Call(() => viewMock.ShowErrorMessage(string.Empty)).IgnoreArguments();

            MockRepository.ReplayAll();

            var controller = new ConfigurationFormController(FacadeMock, uiFactoryMock);
            controller.RegisterView(viewMock);
            controller.LoadFromFile(Filename);

            MockRepository.VerifyAll();
        }