@Test(dependsOnMethods = "testCreateVirtualMachine") public void testLifeCycle() throws Exception { String job = client.getVirtualMachineApi().stopVirtualMachine(vm.getId()); assertTrue(jobComplete.apply(job)); vm = client.getVirtualMachineApi().getVirtualMachine(vm.getId()); assertEquals(vm.getState(), VirtualMachine.State.STOPPED); if (vm.isPasswordEnabled()) { job = client.getVirtualMachineApi().resetPasswordForVirtualMachine(vm.getId()); assertTrue(jobComplete.apply(job)); vm = client.getAsyncJobApi().<VirtualMachine> getAsyncJob(job).getResult(); if (vm.getPassword() != null) { conditionallyCheckSSH(); } } job = client.getVirtualMachineApi().startVirtualMachine(vm.getId()); assertTrue(jobComplete.apply(job)); vm = client.getVirtualMachineApi().getVirtualMachine(vm.getId()); assertEquals(vm.getState(), VirtualMachine.State.RUNNING); job = client.getVirtualMachineApi().rebootVirtualMachine(vm.getId()); assertTrue(jobComplete.apply(job)); vm = client.getVirtualMachineApi().getVirtualMachine(vm.getId()); assertEquals(vm.getState(), VirtualMachine.State.RUNNING); }