public void LoadDefaultConfigurationOnStartupTest() { 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(true); 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).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(); }
public void ServiceDependencyValidationFailureTest() { P4ServiceEntity entity = new P4ServiceEntity(); IEnumerable<BaseServiceEntity> entities = new BaseServiceEntity[] { entity, }; settings = new ServiceHostConfiguration(entities); validator.CheckOtherServiceDependency(entity, settings); }
public void ServiceDependencyValidationSuccessTest() { P4ServiceEntity entity = new P4ServiceEntity(); ChangesetWriterEntity writerEntity = new ChangesetWriterEntity(); IList<BaseServiceEntity> entities = new BaseServiceEntity[] { entity, writerEntity, }; settings = new ServiceHostConfiguration(entities); validator.CheckOtherServiceDependency(entity, settings); }
/// <summary> /// Throw exception if entity depends on other entity that is missing. /// </summary> /// <param name="entity">entity to validate</param> /// <param name="config">Service Host configuration container</param> /// <exception cref="DependencyFailureException" /> public void CheckOtherServiceDependency(BaseServiceEntity entity, ServiceHostConfiguration config) { var attributes = entity.GetType().GetCustomAttributes(typeof (DependsOnServiceAttribute), false); if(attributes.Length < 1) { return; } foreach(var attribute in attributes.Cast<DependsOnServiceAttribute>().Where(attribute => config[attribute.ServiceType] == null)) { throw new DependencyFailureException(attribute.ServiceType, "Service dependency does not exist"); } }
public void ServiceDependenciesValidationFailureTest() { P4ServiceEntity p4Entity = new P4ServiceEntity(); ChangesetWriterEntity writerEntity = new ChangesetWriterEntity(); FitnesseServiceEntity fitEntity = new FitnesseServiceEntity(); IList<BaseServiceEntity> entities = new BaseServiceEntity[] { p4Entity, writerEntity, fitEntity, }; settings = new ServiceHostConfiguration(entities); validator.CheckServiceDependencies(settings); }
public ConfigurationFormController(IFacade facade, IUIFactory uiFactory) { facadeImpl = facade; this.uiFactory = uiFactory; settings = facade.CreateConfiguration(); }
public void LoadFromFile(string fileName) { try { settings = facadeImpl.LoadConfigurationFromFile(fileName); new DependencyValidator(facadeImpl).CheckServiceDependencies(settings); facadeImpl.ResetConnection(); ShowPage("General"); view.SetServiceNodesAndRedraw(uiFactory.GetCoreServiceNames(settings), uiFactory.GetCustomServiceNames(settings)); view.SetCoreServiceNodesEnabled(false); currentFileNameValue = fileName; } catch (InvalidFilenameException ex) { view.ShowErrorMessage(ex.Message); } catch (DependencyFailureException) { settings = facadeImpl.CreateConfiguration(); view.SetServiceNodesAndRedraw(null, null); view.ShowErrorMessage(Resources.ServiceDependenciesInFileInvalid); } }
public override void SetUp() { base.SetUp(); validator = new DependencyValidator(FacadeMock); settings = new ServiceHostConfiguration(); }
/// <summary> /// Throw exception if Service entities depend on other entities that are missing. Usable when business-validating data /// coming from configuration file. /// </summary> /// <param name="config">Service Host configuration container to validate</param> /// <exception cref="DependencyFailureException" /> public void CheckServiceDependencies(ServiceHostConfiguration config) { foreach(var entity in config.Services) { CheckOtherServiceDependency(entity, config); } }
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 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(); }
public void SetUp() { configuration = Facade.Instance.CreateConfiguration(); }
private GeneralController CreateController() { ServiceHostConfiguration model = new ServiceHostConfiguration(); return new GeneralController(model, FacadeMock); }