public void testRunApp() { var lo = new LocalOperations("m1", lf, appInitializedDetectorFactory, null); lo.SelectPlan("p1"); AppState st; st = lo.GetAppState(ads["a"].AppIdTuple); Assert.AreEqual(st.Started, false, "not yet launched"); Assert.AreEqual(st.Running, false, "not yet running"); Assert.AreEqual(st.Killed, false, "not yet killed"); Assert.AreEqual(st.Initialized, false, "not yet initialized"); lo.LaunchApp(ads["a"].AppIdTuple); lo.tick(10.0); st = lo.GetAppState(ads["a"].AppIdTuple); Assert.AreEqual(st.Started, true, "launched"); Assert.AreEqual(st.Running, true, "running"); Assert.AreEqual(st.Killed, false, "not yet killed"); Assert.AreEqual(st.Initialized, true, "initialized"); lo.KillApp(ads["a"].AppIdTuple); lo.tick(10.0); st = lo.GetAppState(ads["a"].AppIdTuple); Assert.AreEqual(st.Started, true, "started after kill"); Assert.AreEqual(st.Killed, true, "killed after kill"); Assert.AreEqual(st.Running, false, "not running after kill"); Assert.AreEqual(st.Initialized, false, "not initialized after kill"); }
public void testStopPlan() { var lo = new LocalOperations("m1", lf, appInitializedDetectorFactory, null); var planName = "p1"; lo.SelectPlan(planName); lo.StartPlan(planName); for (int i = 0; i < 10; i++) { lo.tick(i); // give enought ticks to start all } Assert.AreEqual("m1.a,m1.b,m1.c,m1.d", getAppsWithMatchingState(lo, st => st.Running), "all aps running after Start()"); lo.KillPlan(planName); lo.tick(20.0); Assert.AreEqual("", getAppsWithMatchingState(lo, st => st.Running), "no app running after Stop()"); }
public void testLaunchSequence() { var lo = new LocalOperations("m1", lf, appInitializedDetectorFactory, null); lo.SelectPlan("p1"); // start the plan lo.StartPlan("p1"); var t = 0.0; Assert.AreEqual(0, lf.appsLaunched.Count, "nothing started without tick"); lo.tick(t); Assert.AreEqual("m1.b", getOrder(lf.appsLaunched), "'b' started as first app"); t += 1.0; lo.tick(t); Assert.AreEqual("m1.b", getOrder(lf.appsLaunched), "'a' waiting, not yet starting (separ. interval of b is 2.0)"); t += 1.0; lo.tick(t); Assert.AreEqual("m1.b,m1.a", getOrder(lf.appsLaunched), "'a' started"); t += 1.0; lo.tick(t); Assert.AreEqual("m1.b,m1.a,m1.c", getOrder(lf.appsLaunched), "'c' started"); t += 1.0; lo.tick(t); Assert.AreEqual("m1.b,m1.a,m1.c,m1.d", getOrder(lf.appsLaunched), "'d' started as last app"); Assert.AreEqual("m1.a,m1.b,m1.c,m1.d", getAppsWithMatchingState(lo, st => st.Running), "all aps running"); }