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