public void check_empty()
        {
            var apps = new List <AppDef>()
            {
            };

            var waves = LaunchWavePlanner.build(apps);

            Assert.AreEqual("", getOrder(waves));
        }
        public void check_unknown_depency()
        {
            var appDefs = new List <AppDef>()
            {
                ads["a"] // this one depends on "b" which is not present in the app list
            };

            var waves = LaunchWavePlanner.build(appDefs);

            Assert.AreEqual("m1.a", getOrder(waves));
        }
        public void check_nodeps_goes_first()
        {
            var appDefs = new List <AppDef>()
            {
                ads["b"] // this one has no deps
            };

            var waves = LaunchWavePlanner.build(appDefs);

            Assert.AreEqual("m1.b", getOrder(waves));
        }
Beispiel #4
0
        public void testTimeOutDetector()
        {
            var appDefs = new List <AppDef>()
            {
                ads["a"],
                ads["b"],
                ads["c"],
                ads["d"],
            };

            asr.init(appDefs);

            var waves = LaunchWavePlanner.build(appDefs);
            var ls    = new LaunchDepsChecker("m1", asr.appsState, waves);


            List <AppDef> atl;

            // first goes "b" as it does not depends on anything else
            atl = new List <AppDef>(ls.getAppsToLaunch());
            Assert.AreEqual(new List <AppDef>()
            {
                ads["b"]
            }, atl);

            // now we initialize "b" which in turn yields "a" and "c"
            asr.makeInitialized(ads["b"].AppIdTuple);

            atl = new List <AppDef>(ls.getAppsToLaunch());
            Assert.AreEqual(new List <AppDef>()
            {
                ads["a"], ads["c"]
            }, atl);

            // we launch "a" and "c" which yields nothing (no other app to launch)
            asr.makeLaunched(ads["a"].AppIdTuple);
            asr.makeLaunched(ads["c"].AppIdTuple);

            atl = new List <AppDef>(ls.getAppsToLaunch());
            Assert.AreEqual(new List <AppDef>(), atl);

            // now we initize "a" which in turn yields "d"
            asr.makeInitialized(ads["a"].AppIdTuple);

            atl = new List <AppDef>(ls.getAppsToLaunch());
            Assert.AreEqual(new List <AppDef>()
            {
                ads["d"]
            }, atl);
        }
        public void check_B_AC_D()
        {
            var appDefs = new List <AppDef>()
            {
                ads["a"],
                ads["b"],
                ads["c"],
                ads["d"],
            };

            var waves = LaunchWavePlanner.build(appDefs);

            Assert.AreEqual("m1.b|m1.a,m1.c|m1.d", getOrder(waves));
        }
        public void check_circular2()
        {
            var apps = new List <AppDef>()
            {
                new AppDef()
                {
                    AppIdTuple = new AppIdTuple("m1", "a"), StartupOrder = -1, Dependencies = new List <string>()
                    {
                        "a"
                    }
                },
            };

            var waves = LaunchWavePlanner.build(apps);
        }