예제 #1
0
        public void ValidRunnableReferences()
        {
            // file://Graphs/ValidRunnableReferences.png
            // E:\Dev\Yodii\Yodii.Engine.Tests\ConfigurationSolverTests\Graphs\ValidRunnableReferences.png
            // file://E:\Dev\Yodii\Yodii.Engine.Tests\ConfigurationSolverTests\Graphs\ValidRunnableReferences.png
            // file://Yodii.Engine.Tests\ConfigurationSolverTests\Graphs\ValidRunnableReferences.png

            StaticConfigurationTests.CreateValidRunnableReferences().FullStart((engine, res) =>
            {
                engine.CheckAllPluginsStopped("Plugin1, Plugin2, Plugin3, Plugin4, Plugin5, Plugin6, Plugin7, Plugin8, Plugin9");

                engine.LiveInfo.FindPlugin("Plugin5").Stop();
                engine.CheckAllPluginsStopped("Plugin1, Plugin2, Plugin3, Plugin4, Plugin5, Plugin6, Plugin7, Plugin8, Plugin9");

                engine.LiveInfo.FindPlugin("Plugin5").Start();
                engine.CheckAllPluginsStopped("Plugin1, Plugin2, Plugin3, Plugin4, Plugin6, Plugin7, Plugin8, Plugin9");
                engine.CheckAllPluginsRunning("Plugin5 ");

                engine.LiveInfo.FindPlugin("Plugin2").Start();
                engine.CheckAllPluginsStopped("Plugin1, Plugin3, Plugin4, Plugin6, Plugin7, Plugin8, Plugin9");
                engine.CheckAllPluginsRunning("Plugin2, Plugin5");

                //engine.LiveInfo.FindPlugin( "Plugin2" ).Start( StartDependencyImpact.StartRecommended );
                //engine.CheckAllPluginsStopped( "Plugin1, Plugin3, Plugin4, Plugin6, Plugin7, Plugin9" );
                //engine.CheckAllPluginsRunning( "Plugin2, Plugin5, Plugin8" );

                engine.LiveInfo.FindPlugin("Plugin2").Stop();
                engine.CheckAllPluginsStopped("Plugin1, Plugin2, Plugin3, Plugin4, Plugin6, Plugin7, Plugin8, Plugin9");
                engine.CheckAllPluginsRunning("Plugin5 ");
            });
        }
예제 #2
0
        public void ValidOptionalReferences()
        {
            #region graph

            /*
             *                  +--------+
             *      +-----------|Service1+
             *      |           |Running |
             *      |           +---+----+
             *      |               |
             *  +---+-----+         |
             *  |Plugin1  |     +---+-----+
             *  |Optional |     |Plugin2  |
             *  +----+----+     |Optional |-----------------------+
             *       |          +---------+                       |
             *       |                                            |
             *       |Optional                                    |
             *       |                              +---------+   |
             *       |                              |Service2 |<--+
             *       |       +----------------------|Optional |
             *       |       |                       +---+----+
             *       |       |                          |
             *       |   +---+-------+             +----+------+
             *       |   |Service2.1 |             |Service2.2 |
             *       +-->|Optional   |             |Optional   |
             *           +-----------+             +-----+-----+
             *               |                           |
             *            +--+-----+                  +--+-----+
             *            |Plugin3 |                  |Plugin4 |
             *            |Optional|                  |Optional|
             *            +--------+                  +--------+
             */
            #endregion
            StaticConfigurationTests.CreateValidOptionalReferences().FullStart((engine, res) =>
            {
                engine.CheckAllPluginsRunning("Plugin1|Plugin2");
                engine.CheckServicesRunningLocked("Service1");

                engine.LiveInfo.FindPlugin("Plugin1").Start();
                engine.LiveInfo.FindPlugin("Plugin3").Start();

                engine.CheckAllPluginsRunning("Plugin1, Plugin3");
                engine.CheckAllPluginsStopped("Plugin2, Plugin4");
                engine.CheckAllServicesRunning("Service2.1, Service2");
                engine.CheckAllServicesStopped("Service2.2");

                engine.LiveInfo.FindPlugin("Plugin1").Stop();
                engine.LiveInfo.FindService("Service2.2").Start();

                engine.CheckAllPluginsRunning("Plugin2, Plugin4");
                engine.CheckPluginsStopped("Plugin1, Plugin3");
                engine.CheckAllServicesRunning("Service2.2, Service2");
                engine.CheckAllServicesStopped("Service2.1");
            });
        }
예제 #3
0
        public void CommonReferences4()
        {
            #region graph

            /*
             *                  +--------+
             *      +-----------|Service1+
             *      |           |Running |
             *      |           +---+----+
             *      |               |
             *      |               |
             *      |               |
             *  +---+-----+         |
             *  |Plugin1  |     +---+-----+
             *  |Optional |     |Plugin2  |
             *  +----+----+     |Optional |-----------------------+
             *       |          +---------+                       |
             *       |                                            |
             *       |                                            |
             *       |                                            |
             *       |                                            |
             *       |Runnable                                    |
             *      |                                            |
             *       |                                            |
             *      |                                            |
             *       |                              +---------+   |
             *       |                              |Service2 |<--+
             *       |       +----------------------|Optional |
             *       |       |                       +---+----+
             *       |       |                          |
             *       |       |                          |
             *       |   +---+-------+             +----+------+
             *       |   |Service2.1 |             |Service2.2 |
             *       +-->|Optional   |             |Optional   |
             *           +-----------+             +-----+-----+
             *               |                           |
             *               |                           |
             *               |                         +--+-----+
             *               |                         |Plugin4 |
             *            +--+-----+                   |Optional|
             *            |Plugin3 |                   +--------+
             *            |Optional|
             *            +--------+
             *
             *
             *
             */
            #endregion

            StaticConfigurationTests.CreateValidCommonReferences4().FullStart((engine, res) =>
            {
                engine.LiveInfo.FindPlugin("Plugin4").Start("caller", StartDependencyImpact.Minimal);
                engine.LiveInfo.FindPlugin("Plugin1").Start("caller", StartDependencyImpact.Minimal);
            });
        }
예제 #4
0
        public void TestXmlDeserialization()
        {
            YodiiEngine engineA = MockXmlUtils.CreateEngineFromXmlResource("Valid001a");
            YodiiEngine engineB = StaticConfigurationTests.CreateValid001a();

            EquivalenceExtensions.AssertEngineInfoEquivalence(engineA, engineB);

            engineA = MockXmlUtils.CreateEngineFromXmlResource("Graph005");
            var info = MockInfoFactory.CreateGraph005();

            EquivalenceExtensions.AssertDiscoveredInfoEquivalence(engineA.DiscoveredInfo, info);
        }
예제 #5
0
        public void CommonReferences3a()
        {
            #region graph

            /*
             *                  +--------+                            +--------+
             *      +-----------|Service1+                            |Service2|---------------+
             *      |           |Running |                            |Running |               |
             *      |           +---+----+                            +----+---+               |
             *      |               |                                      |                   |
             *      |               |                                      |                   |
             *      |               |                                      |                   |
             *  +---+-----+         |                                      |                   |
             *  |Plugin1  |     +---+-----+                            +---+-----+         +---+-----+
             *  |Optional |     |Plugin2  |                            |Plugin3  |         |Plugin4  +--------------------+
             *  +----+----+     |Optional |------------------------+   |Optional |         |Optional |                    |
             *       |          +---------+                        |   +---------+         +---------+                    |
             *       |                   |                         |       |                                              |
             *       |                   |                         |       |                                              |
             *       |                   |           +--------+    |       |                                              |
             *       |                   |           |Service3+    |       |                   +--------+                 |
             *       |       +-----------|-----------|Optional|    |       |                   |Service4+                 |
             *       |       |           |           +---+----+    |       |       +-----------|Optional|-------+         |
             *       |       |           |               |         |       |       |           +---+----+       |         |
             *       |       |           |               |         |       |       |                            |         |
             *       |   +---+-------+   |          +----+------+  |       |       |                            |         |
             *       |   |Service3.1 |   |          |Service3.2 |  |       |    +--+--------+             +-----+-----+   |
             *       +-->|Optional   |   |          |Optional   |  +-------|--->|Service4.1 |             |Service4.2 |   |
             *          +-----------+   |          +-----+-----+          |    |Optional   |             |Optional   |<--+
             *              |           |                |                |    +-----------+             +-----+-----+
             *              |           |                |                |        |                           |
             *          +---+-------+   +--------->+-----+-----+          |        |                           |
             *          |Service3.3 |              |Service3.4 |          | +---+-------+              +----+------+
             *          |Optional   |              |Optional   |          +>|Service4.3 |              |Service4.4 |
             *          +--+--------+              +-----------+            |Optional   |              |Optional   |
             *             |                            |                   +--+--------+              +-----------+
             *             |                            |                      |                            |
             *             |                            |                      |                            |
             *          +--+-----+                  +---+----+                 |                            |
             *          |Plugin5 |                  |Plugin6 |              +--+-----+                  +---+----+
             *          |Optional|                  |Optional|              |Plugin7 |                  |Plugin8 |
             *          +--------+                  +--------+              |Optional|                  |Optional|
             *                                                              +--------+                  +--------+
             */
            #endregion

            StaticConfigurationTests.CreateValidCommonReferences3().FullStart((engine, res) =>
            {
                engine.LiveInfo.FindPlugin("Plugin7").Stop();
                engine.CheckAllPluginsStopped("Plugin7, Plugin3, Plugin2, Plugin6");
                engine.CheckAllPluginsRunning("Plugin4, Plugin8, Plugin1, Plugin5");

                engine.LiveInfo.FindPlugin("Plugin4").Start();
                engine.CheckAllPluginsStopped("Plugin7, Plugin3, Plugin2, Plugin6");
                engine.CheckAllPluginsRunning("Plugin4, Plugin8, Plugin1, Plugin5");

                engine.LiveInfo.FindPlugin("Plugin1").Start();
                engine.CheckAllPluginsStopped("Plugin7, Plugin3, Plugin2, Plugin6");
                engine.CheckAllPluginsRunning("Plugin4, Plugin8, Plugin1, Plugin5");

                engine.LiveInfo.FindPlugin("Plugin2").Start();
            });
        }
예제 #6
0
        public void ValidOnlyOneRunnableReference()
        {
            StaticConfigurationTests.CreateValidOnlyOneRunnableReference().FullStart((engine, res) =>
            {
                engine.CheckAllServicesStopped("Service1, Service1.1, Service1.2, Service1.3, Service2, Service2.1, Service2.2");
                engine.CheckAllPluginsStopped("Plugin1, Plugin2, Plugin3, Plugin4, Plugin5");

                engine.LiveInfo.FindPlugin("Plugin1").Stop();

                engine.CheckAllPluginsStopped("Plugin1, Plugin2, Plugin3, Plugin4, Plugin5");
                engine.CheckAllServicesStopped("Service1, Service1.1, Service1.2, Service1.3, Service2, Service2.1, Service2.2");

                engine.LiveInfo.FindPlugin("Plugin1").Start();

                engine.CheckAllServicesStopped("Service1.2, Service1.3, Service2, Service2.1, Service2.2");
                engine.CheckAllServicesRunning("Service1, Service1.1");
                engine.CheckAllPluginsStopped("Plugin2, Plugin3, Plugin4, Plugin5");

                engine.LiveInfo.FindPlugin("Plugin1").Start();
                engine.LiveInfo.FindPlugin("Plugin2").Start();
                engine.LiveInfo.FindService("Service1").Start();
                engine.LiveInfo.FindPlugin("Plugin1").Stop();

                engine.LiveInfo.FindPlugin("Plugin5").Start();
                engine.LiveInfo.FindService("Service1").Stop();

                engine.LiveInfo.FindService("Service1.1").Start();
                engine.LiveInfo.FindService("Service1.2").Start();
                engine.LiveInfo.FindService("Service1").Start();
                engine.LiveInfo.FindService("Service2.2").Start();
                engine.LiveInfo.FindPlugin("Plugin1").Stop();
                engine.LiveInfo.FindPlugin("Plugin2").Stop();
                engine.LiveInfo.FindService("Service1.3").Stop();
                engine.LiveInfo.FindService("Service2").Stop();
                engine.LiveInfo.FindPlugin("Plugin3").Stop();
                engine.LiveInfo.FindService("Service2.1").Stop();
                engine.LiveInfo.FindService("Service1.3").Stop();
                engine.LiveInfo.FindPlugin("Plugin5").Stop();
                engine.LiveInfo.FindService("Service1.1").Start();
                engine.LiveInfo.FindPlugin("Plugin3").Start();
                engine.LiveInfo.FindPlugin("Plugin4").Start();
                engine.LiveInfo.FindService("Service1.3").Start();
                engine.LiveInfo.FindPlugin("Plugin5").Start();

                engine.LiveInfo.FindService("Service1").Start();
                engine.LiveInfo.FindService("Service1.1").Start();
                engine.LiveInfo.FindService("Service1.2").Start();
                engine.LiveInfo.FindPlugin("Plugin1").Start();
                engine.LiveInfo.FindPlugin("Plugin2").Start();
                engine.LiveInfo.FindService("Service1.2").Stop();
                engine.LiveInfo.FindService("Service1").Stop();
                engine.LiveInfo.FindService("Service1.3").Start();
                engine.LiveInfo.FindService("Service2").Start();
                engine.LiveInfo.FindPlugin("Plugin3").Start();
                engine.LiveInfo.FindService("Service2.1").Start();
                engine.LiveInfo.FindService("Service1.3").Start();
                engine.LiveInfo.FindService("Service2.2").Stop();
                engine.LiveInfo.FindService("Service1.1").Stop();
                engine.LiveInfo.FindPlugin("Plugin3").Stop();
                engine.LiveInfo.FindPlugin("Plugin5").Start();
                engine.LiveInfo.FindService("Service2.2").Start();



                engine.LiveInfo.FindPlugin("Plugin1").Stop();
                engine.LiveInfo.FindPlugin("Plugin2").Stop();
                engine.LiveInfo.FindService("Service1").Stop();
                engine.LiveInfo.FindPlugin("Plugin5").Stop();
                engine.LiveInfo.FindService("Service1.1").Stop();
                engine.LiveInfo.FindService("Service1.2").Stop();
                engine.LiveInfo.FindService("Service1").Stop();
                engine.LiveInfo.FindService("Service2.2").Stop();
                engine.LiveInfo.FindService("Service1.1").Stop();
                engine.LiveInfo.FindPlugin("Plugin3").Stop();
                engine.LiveInfo.FindPlugin("Plugin4").Stop();
                engine.LiveInfo.FindService("Service1.3").Stop();
                engine.LiveInfo.FindPlugin("Plugin5").Stop();

                engine.LiveInfo.FindService("Service1").Stop();
                engine.LiveInfo.FindService("Service1.1").Stop();
                engine.LiveInfo.FindService("Service1.2").Stop();
                engine.LiveInfo.FindPlugin("Plugin1").Stop();
                engine.LiveInfo.FindPlugin("Plugin2").Stop();
                engine.LiveInfo.FindService("Service1.3").Stop();
                engine.LiveInfo.FindService("Service2").Stop();
                engine.LiveInfo.FindPlugin("Plugin3").Stop();
                engine.LiveInfo.FindService("Service2.1").Stop();
                engine.LiveInfo.FindService("Service1.3").Stop();
                engine.LiveInfo.FindPlugin("Plugin5").Stop();
                engine.LiveInfo.FindService("Service2.2").Stop();
            });
        }