public void StopProgramTest() { var account = App.Config.GetDefaultAccount(); var context = account.GetContext(); var controller = new ProgramsController(); var programs = context.Programs.ToList(); var program = programs.FirstOrDefault(p => p.State == ProgramState.Running); if (program != null) { controller.Stop(account.AccountName, program.Id.NimbusIdToRawGuid()); program = context.Programs.Where(c => c.Id == program.Id).FirstOrDefault(); Assert.AreEqual(ProgramState.Stopping, program.State); } //trying to stop a stopped program fails. program = programs.FirstOrDefault(p => p.State != ProgramState.Running); if (program != null) { try { controller.Stop(account.AccountName, program.Id.NimbusIdToRawGuid()); } catch (HttpResponseException he) { Assert.AreEqual(HttpStatusCode.PreconditionFailed, he.Response.StatusCode); } } }