MCPcopy
hub / github.com/runfinch/finch / TestRemoveVMAction_runAdapter

Function TestRemoveVMAction_runAdapter

cmd/finch/virtual_machine_remove_test.go:26–81  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

24}
25
26func 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
83func TestRemoveVMAction_run(t *testing.T) {

Callers

nothing calls this directly

Calls 15

EXPECTMethod · 0.95
EXPECTMethod · 0.95
EXPECTMethod · 0.95
NewCommandFunction · 0.92
NewUserDataDiskManagerFunction · 0.92
NewLoggerFunction · 0.92
NewNerdctlCmdCreatorFunction · 0.92
newRemoveVMCommandFunction · 0.85
CreateWithoutStdioMethod · 0.65
OutputMethod · 0.65
DebugfMethod · 0.65
WarnfMethod · 0.65

Tested by

no test coverage detected