コード例 #1
0
            public void GetLogFilesForNewCharacter()
            {
                var newCharacterName = new CharacterName("Figurant");

                Expect(subscriber.ReceivedMessages.Count(m => m.CharacterName == newCharacterName), EqualTo(0));

                CreateNewCharacterDirWithALog("Figurant", "_Event.2012-07.txt");

                IWurmCharacterLogFiles manager = null;

                WaitUntilTrue(() =>
                {
                    try
                    {
                        manager = System.GetForCharacter(newCharacterName);
                        return(true);
                    }
                    catch (Exception exception)
                    {
                        Trace.WriteLine(exception.Message);
                        return(false);
                    }
                });

                subscriber.WaitMessages(1, m => m.CharacterName == newCharacterName);
                var results = manager.GetLogFiles(DateTime.MinValue, DateTime.MaxValue, LogType.Event);

                Expect(results.Count(), EqualTo(1));
            }
コード例 #2
0
        void RebuildAllMonitors()
        {
            var ir      = initialRebuild;
            var timeNow = Time.Get.LocalNow;

            RemoveOldMonitors(timeNow);
            var files = wurmCharacterLogFiles.GetLogFiles(timeNow, timeNow);

            foreach (var file in files)
            {
                if (ShouldFileBeMonitored(file, timeNow))
                {
                    if (!monitors.ContainsKey(file.FullPath))
                    {
                        SingleFileMonitor monitor;
                        // when initializing engine, we ignore events already in files
                        // when adding engines for new files, we want to always read from start of file
                        if (ir)
                        {
                            monitor        = singleFileMonitorFactory.Create(file);
                            initialRebuild = false;
                        }
                        else
                        {
                            monitor = singleFileMonitorFactory.Create(file, 0L);
                        }

                        monitors.Add(file.FullPath, monitor);
                    }
                }
            }
        }
コード例 #3
0
            public void CreatesManagerForNewCharacter()
            {
                CreateNewCharacterEmptyDir("Newguy");
                // there is a delay before new directory gets observed
                IWurmCharacterLogFiles manager = null;

                WaitUntilTrue(() =>
                {
                    try
                    {
                        manager = System.GetForCharacter(new CharacterName("Newguy"));
                        return(true);
                    }
                    catch (Exception exception)
                    {
                        Trace.WriteLine(exception.Message);
                        return(false);
                    }
                });

                var files = manager.GetLogFiles(DateTime.MinValue, DateTime.MaxValue);

                Expect(files.Count(), EqualTo(0));
            }