@@ -1460,4 +1460,39 @@ TEST_F(BaseVM, sshExecRethrowsSSHExceptionsWhenConnected)
14601460 mpt::match_what (HasSubstr (" intentional" )));
14611461}
14621462
1463+ TEST_F (BaseVM, setUnavailableShutsdownRunning)
1464+ {
1465+ vm.start ();
1466+ ASSERT_EQ (vm.current_state (), St::running);
1467+
1468+ EXPECT_CALL (vm, shutdown (mp::VirtualMachine::ShutdownPolicy::Poweroff)).Times (1 );
1469+
1470+ vm.set_available (false );
1471+ EXPECT_EQ (vm.current_state (), St::unavailable);
1472+ }
1473+
1474+ TEST_F (BaseVM, setAvailableRestartsRunning)
1475+ {
1476+ vm.start ();
1477+ ASSERT_EQ (vm.current_state (), St::running);
1478+ vm.set_available (false );
1479+ ASSERT_EQ (vm.current_state (), St::unavailable);
1480+
1481+ EXPECT_CALL (vm, start).Times (1 );
1482+
1483+ vm.set_available (true );
1484+ EXPECT_EQ (vm.current_state (), St::running);
1485+ }
1486+
1487+ TEST_F (BaseVM, setAvailableKeepsStoppedStopped)
1488+ {
1489+ vm.shutdown (mp::VirtualMachine::ShutdownPolicy::Poweroff);
1490+ ASSERT_EQ (vm.current_state (), St::stopped);
1491+ vm.set_available (false );
1492+ ASSERT_EQ (vm.current_state (), St::unavailable);
1493+
1494+ vm.set_available (true );
1495+ EXPECT_EQ (vm.current_state (), St::stopped);
1496+ }
1497+
14631498} // namespace
0 commit comments