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)); }
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); }