public void Test_MissingLoggingServer_UseDefault() { var lmd = WhenIHaveA <LoadMetadata>(); var cata1 = lmd.GetAllCatalogues().Single(); var cata2 = WhenIHaveA <Catalogue>(); var eds = WhenIHaveA <ExternalDatabaseServer>(); eds.Name = "My Logging Server"; eds.SaveToDatabase(); cata2.LoadMetadata_ID = lmd.ID; cata1.LoggingDataTask = "OMG YEAGH"; cata1.LiveLoggingServer_ID = null; cata2.LoggingDataTask = "OMG YEAGH"; cata2.LiveLoggingServer_ID = null; var defaults = RepositoryLocator.CatalogueRepository.GetServerDefaults(); defaults.SetDefault(PermissableDefaults.LiveLoggingServer_ID, eds); Assert.AreEqual(2, lmd.GetAllCatalogues().Count()); var checks = new MetadataLoggingConfigurationChecks(lmd); var toMem = new ToMemoryCheckNotifier(); checks.Check(toMem); AssertFailWithFix("Some catalogues have NULL LiveLoggingServer_ID", $"Set LiveLoggingServer_ID to 'My Logging Server' (the default)", toMem); }
public void Check(ICheckNotifier notifier) { var catalogueLoadChecks = new CatalogueLoadChecks(LoadMetadata, _loadConfigurationFlags, _databaseConfiguration); var metadataLoggingConfigurationChecks = new MetadataLoggingConfigurationChecks(LoadMetadata); var processTaskChecks = new ProcessTaskChecks(LoadMetadata); var preExecutionChecks = new PreExecutionChecker(LoadMetadata, _databaseConfiguration); _mef.CheckForVersionMismatches(notifier); //If the load is a progressable (loaded over time) then make sure any associated caches are compatible with the load ProcessTasks foreach (ILoadProgress loadProgress in LoadMetadata.LoadProgresses) { loadProgress.Check(notifier); var cp = loadProgress.CacheProgress; if (cp != null) { try { var f = new CacheLayoutFactory(); f.CreateCacheLayout(loadProgress, LoadMetadata); } catch (Exception e) { notifier.OnCheckPerformed(new CheckEventArgs("Load contains a CacheProgress '" + cp + "' but we were unable to generate an ICacheLayout, see Inner Exception for details", CheckResult.Fail, e)); } } } //Make sure there are some load tasks and they are valid processTaskChecks.Check(notifier); try { metadataLoggingConfigurationChecks.Check(notifier); preExecutionChecks.Check(notifier); if (!preExecutionChecks.HardFail) { catalogueLoadChecks.Check(notifier); } } catch (Exception e) { notifier.OnCheckPerformed(new CheckEventArgs("Entire check process crashed in an unexpected way", CheckResult.Fail, e)); } }
public void Test_NoLoggingTask() { var lmd = WhenIHaveA <LoadMetadata>(); var cata1 = lmd.GetAllCatalogues().Single(); var cata2 = WhenIHaveA <Catalogue>(); cata2.LoadMetadata_ID = lmd.ID; Assert.AreEqual(2, lmd.GetAllCatalogues().Count()); var checks = new MetadataLoggingConfigurationChecks(lmd); var toMem = new ToMemoryCheckNotifier(); checks.Check(toMem); AssertFailWithFix("Catalogues Mycata,Mycata do not have a logging task specified", "Create a new Logging Task called 'MyLoad'?", toMem); }
public void Test_MismatchedLoggingTask() { var lmd = WhenIHaveA <LoadMetadata>(); var cata1 = lmd.GetAllCatalogues().Single(); var cata2 = WhenIHaveA <Catalogue>(); cata2.LoadMetadata_ID = lmd.ID; cata1.LoggingDataTask = "OMG YEAGH"; Assert.AreEqual(2, lmd.GetAllCatalogues().Count()); var checks = new MetadataLoggingConfigurationChecks(lmd); var toMem = new ToMemoryCheckNotifier(); checks.Check(toMem); AssertFailWithFix("Some catalogues have NULL LoggingDataTasks", "Set task to OMG YEAGH", toMem); }