Inheritance: StoryTeller.Messages.ClientMessage
Example #1
0
        public void Start(EngineMode mode, Project project, MarshalByRefObject remoteListener)
        {
            Project.CurrentProject = project;

            EventAggregator.Start((IRemoteListener)remoteListener);

            _project = project;

            Type systemType = null;

            try
            {
                systemType = _project.DetermineSystemType();
                _system    = Activator.CreateInstance(systemType).As <ISystem>();
                _services.Add(_system);

                var timeZone   = new MachineTimeZoneContext();
                var clock      = new Clock();
                var systemTime = new SystemTime(clock, timeZone);
                _specExpiration = new SpecExpiration(systemTime);

                if (mode == EngineMode.Interactive)
                {
                    _engine = buildUserInterfaceEngine();
                }
                else
                {
                    _engine = buildBatchedEngine(project.TracingStyle);
                }


                _engine.Start(project.StopConditions);
            }
            catch (Exception e)
            {
                var message = new SystemRecycled
                {
                    error   = e.ToString(),
                    success = false,
                };

                if (systemType != null)
                {
                    message.system_name = systemType.AssemblyQualifiedName;
                }

                EventAggregator.SendMessage(message);
            }

            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
            AppDomain.CurrentDomain.DomainUnload       += CurrentDomainOnDomainUnload;
        }
Example #2
0
        public SystemRecycled CloneWithOverriddenFixtures(FixtureModel[] fixtureArray)
        {
            var clone = new SystemRecycled
            {
                error            = error,
                success          = success,
                system_full_name = system_full_name,
                time             = time,
                name             = name,
                system_name      = system_name,
                fixtures         = fixtureArray
            };



            return(clone);
        }
        public SystemRecycled CloneWithOverriddenFixtures(FixtureModel[] fixtureArray)
        {
            var clone = new SystemRecycled
            {
                error = error,
                success = success,
                system_full_name = system_full_name,
                time = time,
                name = name,
                system_name = system_name,
                properties = properties,
                fixtures = fixtureArray
            };



            return clone;
        }
Example #4
0
        public static SystemRecycled Initialize(this ISystem system, Action<FixtureLibrary> onStarted)
        {
            CellHandling cellHandling = null;

            try
            {
                cellHandling = system.Start();
            }
            catch (Exception ex)
            {
                ConsoleWriter.Write(ConsoleColor.Red, ex.ToString());

                var message = new SystemRecycled
                {
                    success = false,
                    fixtures = new FixtureModel[0],
                    system_name = system.ToString(),
                    system_full_name = system.GetType().FullName,
                    name = Path.GetFileName(AppContext.BaseDirectory),
                    error = ex.ToString()
                };

                return message;
            }


            var library = FixtureLibrary.CreateForAppDomain(cellHandling);

            onStarted(library);

            return new SystemRecycled
            {
                success = true,
                fixtures = library.Models.GetAll().ToArray(),
                system_name = system.ToString(),
                name = Path.GetFileName(AppContext.BaseDirectory)
            };
        }
 public void RecordSystemFixtures(SystemRecycled recycled)
 {
     _systemFixtures = FixtureLibrary.From(recycled.fixtures);
 }
        private SystemRecycled tryToStart()
        {
            CellHandling cellHandling = null;
            try
            {
                cellHandling = _system.Start();
            }
            catch (Exception ex)
            {
                var message = new SystemRecycled
                {
                    success = false,
                    fixtures = new FixtureModel[0],
                    system_name = _system.ToString(),
                    system_full_name = _system.GetType().FullName,
                    name = Path.GetFileName(AppDomain.CurrentDomain.BaseDirectory),
                    error = ex.ToString()
                };

                return message;
            }

            var library = FixtureLibrary.CreateForAppDomain(cellHandling);

            startTheConsumingQueues(library);

            return new SystemRecycled
            {
                success = true,
                fixtures = library.Models.GetAll().ToArray(),
                system_name = _system.ToString(),
                name = Path.GetFileName(AppDomain.CurrentDomain.BaseDirectory)
            };
        }
Example #7
0
        public void Start(EngineMode mode, Project project, MarshalByRefObject remoteListener)
        {
            Project.CurrentProject = project;

            EventAggregator.Start((IRemoteListener) remoteListener);

            _project = project;

            Type systemType = null;

            try
            {
                systemType = _project.DetermineSystemType();
                _system = Activator.CreateInstance(systemType).As<ISystem>();
                _services.Add(_system);

                var timeZone = new MachineTimeZoneContext();
                var clock = new Clock();
                var systemTime = new SystemTime(clock, timeZone);
                _specExpiration = new SpecExpiration(systemTime);

                if (mode == EngineMode.Interactive)
                {
                    _engine = buildUserInterfaceEngine();
                }
                else
                {
                    _engine = buildBatchedEngine(project.TracingStyle);
                }

                _engine.Start(project.StopConditions);

            }
            catch (Exception e)
            {
                var message = new SystemRecycled
                {
                    error = e.ToString(),
                    success = false,
                };

                if (systemType != null)
                {
                    message.system_name = systemType.AssemblyQualifiedName;
                }

                EventAggregator.SendMessage(message);
            }

            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
            AppDomain.CurrentDomain.DomainUnload += CurrentDomainOnDomainUnload;
        }
Example #8
0
        public void Start(Project project)
        {
            if (_system != null)
            {
                Console.WriteLine($"AGENT: Trying to start specification runner for {_system.GetType().Name} at {project.ProjectPath} and port {project.Port}");
            }

            Project.CurrentProject = project;


            _project = project;

            Type systemType = null;

            try
            {
                if (_system == null)
                {
                    systemType = _project.DetermineSystemType();
                    _system = Activator.CreateInstance(systemType).As<ISystem>();
                    _disposables.Add(_system);
                }

                if (project.Mode == EngineMode.ExportOnly)
                {
                    var recycled = _system.Initialize(lib => { });
                    EventAggregator.SendMessage(recycled);
                    return;
                }


                _engine = project.Mode == EngineMode.Interactive
                    ? buildUserInterfaceEngine()
                    : buildBatchedEngine(project.TracingStyle);


                _engine.Start(project.StopConditions);


                ConsoleWriter.Write("AGENT: Specification running engine ready at " + project.ProjectPath);
            }
            catch (Exception e)
            {
                ConsoleWriter.Write(ConsoleColor.Red, e.ToString());

                var message = new SystemRecycled
                {
                    error = e.ToString(),
                    success = false,
                };

                if (systemType != null)
                {
                    message.system_name = systemType.AssemblyQualifiedName;
                }

                EventAggregator.SendMessage(message);
            }


        }
Example #9
0
 public InitialModel(SystemRecycled recycled, HierarchyLoaded hierarchy)
     : base("initial-model")
 {
     Recycled = recycled;
     Hierarchy = hierarchy;
 }