public void OnApplicationStarted(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext) { if (_started) { return; } lock (_lock) { if (!_started) { _started = true; //Adding Custom GridConverter //GridContext.Current.Converters.Add(new RgGridConverter()); _examineIndexer = new ExamineIndexer(); //Register events for examine _examineDefaultIndexer = new ExamineDefaultIndexer(); // adds path_search + hideFromSearch to examine _examineLciIndexer = new Skybrud.Umbraco.Module.Indexers.ExamineLciIndexer(); //LowerCase Indexer _examineDateRangeIndexer = new ExamineDateRangeIndexer(new[] { Constants.SkyConstants.Properties.ContentDate }); _defaultNewsValues = new ContentDefaultValues(); //Default newsdate defaultvalue _defaultValues = new ContentDefaultValues(); _assetsWatcher = new AssetsWatcher(); //Watches pt. scripts-folder, to handle any js updates ContentChangesGuid = Guid.NewGuid(); //Sets guid to handle changes in Umbracontent, to update frontend NG-cache JsChangesGuid = Guid.NewGuid(); //Sets guid to handle changes in scripts-folder } } }
public void TestAddingMoreAndRemovingFiles1() { var scheduler = new TestScheduler(); var foo = AbsoluteFilePath.Parse("/c/Foo.js"); var bar = AbsoluteFilePath.Parse("/c/Bar.js"); var lol = AbsoluteFilePath.Parse("/c/lol.js"); var fileSystem = Substitute.For <IFileSystem>(); SetFilesChanges(fileSystem, foo, new[] { OnNext(0, Encoding.UTF8.GetBytes("let foo = 0;")), OnNext(TimeSpan.FromSeconds(4).Ticks, Encoding.UTF8.GetBytes("let foo = 40;")), OnNext(TimeSpan.FromSeconds(7.1).Ticks, Encoding.UTF8.GetBytes("let foo = 700;")) }, scheduler); SetFilesChanges(fileSystem, bar, new[] { OnNext(0, Encoding.UTF8.GetBytes("let bar = 0;")), OnNext(TimeSpan.FromSeconds(5).Ticks, Encoding.UTF8.GetBytes("let bar = 50;")) }, scheduler); SetFilesChanges(fileSystem, lol, new[] { OnNext(0, Encoding.UTF8.GetBytes("let lol = 0;")), OnNext(TimeSpan.FromSeconds(6).Ticks, Encoding.UTF8.GetBytes("let lol = 10;")) }, scheduler); var assetsWatcher = new AssetsWatcher(fileSystem, Observable.Return(DirectoryPath.GetTempPath()), scheduler); var whatHappened = assetsWatcher.UpdateChangedBundleFiles( scheduler.CreateColdObservable( OnNext(TimeSpan.FromSeconds(0).Ticks, ImmutableHashSet.Create(foo)), OnNext(TimeSpan.FromSeconds(1).Ticks, ImmutableHashSet.Create(foo, bar)), OnNext(TimeSpan.FromSeconds(2).Ticks, ImmutableHashSet.Create(foo, bar, lol)), OnNext(TimeSpan.FromSeconds(6).Ticks, ImmutableHashSet.Create(foo, bar)), OnNext(TimeSpan.FromSeconds(7).Ticks, ImmutableHashSet.Create(foo)) )).Check(); scheduler.Start(); Assert.AreEqual(6, whatHappened.Results.Count, "Seems like adding and removing files doesn't work, got incorrect number of file changed events.\n{0}", string.Join("\n", whatHappened.Results.Select(e => e.CoalesceKey + ": " + e.BlobData.ToString()))); Assert.IsNull(whatHappened.Error, "Did not expect any errors in the observable stream."); }