(t *testing.T)
| 24 | } |
| 25 | |
| 26 | func TestRemoveVMAction_runAdapter(t *testing.T) { |
| 27 | t.Parallel() |
| 28 | |
| 29 | testCases := []struct { |
| 30 | name string |
| 31 | mockSvc func(logger *mocks.Logger, creator *mocks.NerdctlCmdCreator, dm *mocks.UserDataDiskManager, ctrl *gomock.Controller) |
| 32 | args []string |
| 33 | }{ |
| 34 | { |
| 35 | name: "should remove the instance", |
| 36 | args: []string{}, |
| 37 | mockSvc: func(logger *mocks.Logger, creator *mocks.NerdctlCmdCreator, dm *mocks.UserDataDiskManager, ctrl *gomock.Controller) { |
| 38 | getVMStatusC := mocks.NewCommand(ctrl) |
| 39 | creator.EXPECT().CreateWithoutStdio("ls", "-f", "{{.Status}}", limaInstanceName).Return(getVMStatusC) |
| 40 | getVMStatusC.EXPECT().Output().Return([]byte("Stopped"), nil) |
| 41 | logger.EXPECT().Debugf("Status of virtual machine: %s", "Stopped") |
| 42 | logger.EXPECT().Warnf(gomock.Any(), gomock.Any()).AnyTimes() |
| 43 | dm.EXPECT().DetachUserDataDisk().Return(nil) |
| 44 | command := mocks.NewCommand(ctrl) |
| 45 | creator.EXPECT().CreateWithoutStdio("remove", limaInstanceName).Return(command) |
| 46 | command.EXPECT().CombinedOutput() |
| 47 | logger.EXPECT().Info(gomock.Any()).AnyTimes() |
| 48 | }, |
| 49 | }, |
| 50 | { |
| 51 | name: "should forcibly remove the instance", |
| 52 | args: []string{ |
| 53 | "--force", |
| 54 | }, |
| 55 | mockSvc: func(logger *mocks.Logger, creator *mocks.NerdctlCmdCreator, dm *mocks.UserDataDiskManager, ctrl *gomock.Controller) { |
| 56 | logger.EXPECT().Warnf(gomock.Any(), gomock.Any()).AnyTimes() |
| 57 | command := mocks.NewCommand(ctrl) |
| 58 | dm.EXPECT().DetachUserDataDisk().Return(nil) |
| 59 | creator.EXPECT().CreateWithoutStdio("remove", "--force", limaInstanceName).Return(command) |
| 60 | command.EXPECT().CombinedOutput() |
| 61 | logger.EXPECT().Info(gomock.Any()).AnyTimes() |
| 62 | }, |
| 63 | }, |
| 64 | } |
| 65 | |
| 66 | for _, tc := range testCases { |
| 67 | t.Run(tc.name, func(t *testing.T) { |
| 68 | t.Parallel() |
| 69 | |
| 70 | ctrl := gomock.NewController(t) |
| 71 | dm := mocks.NewUserDataDiskManager(ctrl) |
| 72 | logger := mocks.NewLogger(ctrl) |
| 73 | ncc := mocks.NewNerdctlCmdCreator(ctrl) |
| 74 | tc.mockSvc(logger, ncc, dm, ctrl) |
| 75 | |
| 76 | cmd := newRemoveVMCommand(ncc, dm, logger) |
| 77 | cmd.SetArgs(tc.args) |
| 78 | assert.NoError(t, cmd.Execute()) |
| 79 | }) |
| 80 | } |
| 81 | } |
| 82 | |
| 83 | func TestRemoveVMAction_run(t *testing.T) { |
nothing calls this directly
no test coverage detected