public void StartProgramTest()
        {
            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.Stopped);

            if (program != null)
            {
                controller.Start(account.AccountName, program.Id.NimbusIdToRawGuid());
                program = context.Programs.Where(c => c.Id == program.Id).FirstOrDefault();
                Assert.AreEqual(ProgramState.Starting, program.State);
            }
            //trying to start a running program fails.
            program = programs.FirstOrDefault(p => p.State != ProgramState.Stopped);
            if (program != null)
            {
                try
                {
                    controller.Start(account.AccountName, program.Id.NimbusIdToRawGuid());
                }
                catch (HttpResponseException he)
                {
                    Assert.AreEqual(HttpStatusCode.PreconditionFailed, he.Response.StatusCode);
                }
            }
        }