diff --git a/cmd/favorite_clear_test.go b/cmd/favorite_clear_test.go index a2265362..d337ed89 100644 --- a/cmd/favorite_clear_test.go +++ b/cmd/favorite_clear_test.go @@ -15,6 +15,7 @@ import ( "github.com/yanosea/jrp/app/proxy/fmt" "github.com/yanosea/jrp/app/proxy/io" "github.com/yanosea/jrp/app/proxy/os" + "github.com/yanosea/jrp/app/proxy/promptui" "github.com/yanosea/jrp/app/proxy/sort" "github.com/yanosea/jrp/app/proxy/sql" "github.com/yanosea/jrp/app/proxy/strconv" @@ -26,18 +27,21 @@ import ( "github.com/yanosea/jrp/mock/app/database/jrp/repository" "github.com/yanosea/jrp/mock/app/library/dbfiledirpathprovider" "github.com/yanosea/jrp/mock/app/library/utility" + "github.com/yanosea/jrp/mock/app/proxy/promptui" "github.com/yanosea/jrp/test/testutility" "go.uber.org/mock/gomock" ) func TestNewFavoriteClearCommand(t *testing.T) { type args struct { - g *GlobalOption + g *GlobalOption + promptuiProxy promptuiproxy.Promptui } tests := []struct { name string args args wantError bool + setup func(*gomock.Controller, *args) }{ { name: "positive testing", @@ -47,13 +51,27 @@ func TestNewFavoriteClearCommand(t *testing.T) { osproxy.New(), strconvproxy.New(), ), + promptuiProxy: nil, }, wantError: false, + setup: func(mockCtrl *gomock.Controller, args *args) { + mockPromptInstance := mockpromptuiproxy.NewMockPromptInstanceInterface(mockCtrl) + mockPromptInstance.EXPECT().SetLabel(gomock.Any()) + mockPromptInstance.EXPECT().Run().Return("y", nil) + mockPromptuiProxy := mockpromptuiproxy.NewMockPromptui(mockCtrl) + mockPromptuiProxy.EXPECT().NewPrompt().Return(mockPromptInstance) + args.promptuiProxy = mockPromptuiProxy + }, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - got := NewFavoriteClearCommand(tt.args.g) + if tt.setup != nil { + mockCtrl := gomock.NewController(t) + defer mockCtrl.Finish() + tt.setup(mockCtrl, &tt.args) + } + got := NewFavoriteClearCommand(tt.args.g, tt.args.promptuiProxy) if err := got.Execute(); (err != nil) != tt.wantError { t.Errorf("NewFavoriteClearCommand().Execute() : error =\n%v", err) } @@ -103,6 +121,21 @@ func Test_favoriteClearOption_favoriteClearRunE(t *testing.T) { ) mockCtrl := gomock.NewController(t) defer mockCtrl.Finish() + mockPromptInstance := mockpromptuiproxy.NewMockPromptInstanceInterface(mockCtrl) + mockPromptInstance.EXPECT().SetLabel(gomock.Any()).AnyTimes() + mockPromptInstance.EXPECT().Run().Return("y", nil).AnyTimes() + mockPromptuiProxy := mockpromptuiproxy.NewMockPromptui(mockCtrl) + mockPromptuiProxy.EXPECT().NewPrompt().Return(mockPromptInstance).AnyTimes() + noMockPromptInstance := mockpromptuiproxy.NewMockPromptInstanceInterface(mockCtrl) + noMockPromptInstance.EXPECT().SetLabel(gomock.Any()) + noMockPromptInstance.EXPECT().Run().Return("n", nil) + noMockPromptuiProxy := mockpromptuiproxy.NewMockPromptui(mockCtrl) + noMockPromptuiProxy.EXPECT().NewPrompt().Return(noMockPromptInstance) + errMockPromptInstance := mockpromptuiproxy.NewMockPromptInstanceInterface(mockCtrl) + errMockPromptInstance.EXPECT().SetLabel(gomock.Any()) + errMockPromptInstance.EXPECT().Run().Return("", errors.New("PromptInstance.Run() failed")) + errMockPromptuiProxy := mockpromptuiproxy.NewMockPromptui(mockCtrl) + errMockPromptuiProxy.EXPECT().NewPrompt().Return(errMockPromptInstance) mockDBFileDirPathProvider := mockdbfiledirpathprovider.NewMockDBFileDirPathProvidable(mockCtrl) mockDBFileDirPathProvider.EXPECT().GetJrpDBFileDirPath().Return("", errors.New("DBFileDirPathProvider.GetJrpDBFileDirPath() failed")) mockUtility := mockutility.NewMockUtilityInterface(mockCtrl) @@ -123,6 +156,78 @@ func Test_favoriteClearOption_favoriteClearRunE(t *testing.T) { setup func() cleanup func() }{ + { + name: "positive testing (answering not yes on the prompt)", + fields: fields{ + t: t, + fnc: func() { + favoriteClearOption := &favoriteClearOption{ + Out: capturer.OutBuffer, + ErrOut: capturer.ErrBuffer, + Args: osproxy.Args[1:], + NoConfirm: false, + DBFileDirPathProvider: dbFileDirPathProvider, + JrpRepository: jrpRepository, + PromptuiProxy: noMockPromptuiProxy, + Utility: util, + } + if err := favoriteClearOption.favoriteClearRunE(nil, nil); err != nil { + t.Errorf("favoriteClearOption.favoriteClearRunE() : error =\n%v", err) + } + }, + capturer: capturer, + }, + wantStdOut: constant.FAVORITE_CLEAR_MESSAGE_CLEAR_CANCELED + "\n", + wantStdErr: "", + wantJrps: nil, + wantErr: false, + setup: func() { + if err := osProxy.RemoveAll(jrpDBFilePath); err != nil { + t.Errorf("OsProxy.RemoveAll() : error =\n%v", err) + } + }, + cleanup: func() { + if err := osProxy.RemoveAll(jrpDBFilePath); err != nil { + t.Errorf("OsProxy.RemoveAll() : error =\n%v", err) + } + }, + }, + { + name: "positive testing (set no-confirm option)", + fields: fields{ + t: t, + fnc: func() { + favoriteClearOption := &favoriteClearOption{ + Out: capturer.OutBuffer, + ErrOut: capturer.ErrBuffer, + Args: osproxy.Args[1:], + NoConfirm: true, + DBFileDirPathProvider: dbFileDirPathProvider, + JrpRepository: jrpRepository, + PromptuiProxy: nil, + Utility: util, + } + if err := favoriteClearOption.favoriteClearRunE(nil, nil); err != nil { + t.Errorf("favoriteClearOption.favoriteClearRunE() : error =\n%v", err) + } + }, + capturer: capturer, + }, + wantStdOut: colorProxy.YellowString(constant.FAVORITE_CLEAR_MESSAGE_CLEARED_NONE) + "\n", + wantStdErr: "", + wantJrps: nil, + wantErr: false, + setup: func() { + if err := osProxy.RemoveAll(jrpDBFilePath); err != nil { + t.Errorf("OsProxy.RemoveAll() : error =\n%v", err) + } + }, + cleanup: func() { + if err := osProxy.RemoveAll(jrpDBFilePath); err != nil { + t.Errorf("OsProxy.RemoveAll() : error =\n%v", err) + } + }, + }, { name: "positive testing (no jrps in the database file)", fields: fields{ @@ -132,8 +237,10 @@ func Test_favoriteClearOption_favoriteClearRunE(t *testing.T) { Out: capturer.OutBuffer, ErrOut: capturer.ErrBuffer, Args: osproxy.Args[1:], + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, } if err := favoriteClearOption.favoriteClearRunE(nil, nil); err != nil { @@ -166,8 +273,10 @@ func Test_favoriteClearOption_favoriteClearRunE(t *testing.T) { Out: capturer.OutBuffer, ErrOut: capturer.ErrBuffer, Args: osproxy.Args[1:], + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, } if err := favoriteClearOption.favoriteClearRunE(nil, nil); err != nil { @@ -214,8 +323,10 @@ func Test_favoriteClearOption_favoriteClearRunE(t *testing.T) { Out: capturer.OutBuffer, ErrOut: capturer.ErrBuffer, Args: osproxy.Args[1:], + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, } if err := favoriteClearOption.favoriteClearRunE(nil, nil); err != nil { @@ -265,8 +376,10 @@ func Test_favoriteClearOption_favoriteClearRunE(t *testing.T) { Out: capturer.OutBuffer, ErrOut: capturer.ErrBuffer, Args: osproxy.Args[1:], + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, } if err := favoriteClearOption.favoriteClearRunE(nil, nil); err != nil { @@ -320,8 +433,10 @@ func Test_favoriteClearOption_favoriteClearRunE(t *testing.T) { Out: capturer.OutBuffer, ErrOut: capturer.ErrBuffer, Args: osproxy.Args[1:], + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, } if err := favoriteClearOption.favoriteClearRunE(nil, nil); err != nil { @@ -378,8 +493,10 @@ func Test_favoriteClearOption_favoriteClearRunE(t *testing.T) { Out: capturer.OutBuffer, ErrOut: capturer.ErrBuffer, Args: osproxy.Args[1:], + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, } if err := favoriteClearOption.favoriteClearRunE(nil, nil); err != nil { @@ -436,8 +553,10 @@ func Test_favoriteClearOption_favoriteClearRunE(t *testing.T) { Out: capturer.OutBuffer, ErrOut: capturer.ErrBuffer, Args: osproxy.Args[1:], + NoConfirm: false, DBFileDirPathProvider: mockDBFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, } if err := favoriteClearOption.favoriteClearRunE(nil, nil); err != nil { @@ -470,8 +589,10 @@ func Test_favoriteClearOption_favoriteClearRunE(t *testing.T) { Out: capturer.OutBuffer, ErrOut: capturer.ErrBuffer, Args: osproxy.Args[1:], + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: mockUtility, } if err := favoriteClearOption.favoriteClearRunE(nil, nil); err != nil { @@ -495,6 +616,42 @@ func Test_favoriteClearOption_favoriteClearRunE(t *testing.T) { } }, }, + { + name: "negative testing (PromptInstance.run() failed)", + fields: fields{ + t: t, + fnc: func() { + favoriteClearOption := &favoriteClearOption{ + Out: capturer.OutBuffer, + ErrOut: capturer.ErrBuffer, + Args: osproxy.Args[1:], + NoConfirm: false, + DBFileDirPathProvider: dbFileDirPathProvider, + JrpRepository: jrpRepository, + PromptuiProxy: errMockPromptuiProxy, + Utility: util, + } + if err := favoriteClearOption.favoriteClearRunE(nil, nil); err != nil { + fmt.Printf("favoriteClearOption.favoriteClearRunE() : error =\n%v", err) + } + }, + capturer: capturer, + }, + wantStdOut: "", + wantStdErr: testutility.TEST_OUTPUT_ANY, + wantJrps: nil, + wantErr: false, + setup: func() { + if err := osProxy.RemoveAll(jrpDBFilePath); err != nil { + t.Errorf("OsProxy.RemoveAll() : error =\n%v", err) + } + }, + cleanup: func() { + if err := osProxy.RemoveAll(jrpDBFilePath); err != nil { + t.Errorf("OsProxy.RemoveAll() : error =\n%v", err) + } + }, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { @@ -562,13 +719,22 @@ func Test_favoriteClearOption_favoriteClear(t *testing.T) { strconvproxy.New(), stringsproxy.New(), ) + mockCtrl := gomock.NewController(t) + defer mockCtrl.Finish() + mockPromptInstance := mockpromptuiproxy.NewMockPromptInstanceInterface(mockCtrl) + mockPromptInstance.EXPECT().SetLabel(gomock.Any()).AnyTimes() + mockPromptInstance.EXPECT().Run().Return("y", nil).AnyTimes() + mockPromptuiProxy := mockpromptuiproxy.NewMockPromptui(mockCtrl) + mockPromptuiProxy.EXPECT().NewPrompt().Return(mockPromptInstance).AnyTimes() type fields struct { Out ioproxy.WriterInstanceInterface ErrOut ioproxy.WriterInstanceInterface Args []string + NoConfirm bool DBFileDirPathProvider dbfiledirpathprovider.DBFileDirPathProvidable JrpRepository repository.JrpRepositoryInterface + PromptuiProxy promptuiproxy.Promptui Utility utility.UtilityInterface } type args struct { @@ -589,8 +755,10 @@ func Test_favoriteClearOption_favoriteClear(t *testing.T) { Out: osproxy.Stdout, ErrOut: osproxy.Stderr, Args: osproxy.Args[1:], + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, }, args: args{ @@ -615,8 +783,10 @@ func Test_favoriteClearOption_favoriteClear(t *testing.T) { Out: osproxy.Stdout, ErrOut: osproxy.Stderr, Args: osproxy.Args[1:], + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, }, args: args{ @@ -655,8 +825,10 @@ func Test_favoriteClearOption_favoriteClear(t *testing.T) { Out: osproxy.Stdout, ErrOut: osproxy.Stderr, Args: osproxy.Args[1:], + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, }, args: args{ @@ -698,8 +870,10 @@ func Test_favoriteClearOption_favoriteClear(t *testing.T) { Out: osproxy.Stdout, ErrOut: osproxy.Stderr, Args: osproxy.Args[1:], + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, }, args: args{ @@ -745,8 +919,10 @@ func Test_favoriteClearOption_favoriteClear(t *testing.T) { Out: osproxy.Stdout, ErrOut: osproxy.Stderr, Args: osproxy.Args[1:], + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, }, args: args{ @@ -795,8 +971,10 @@ func Test_favoriteClearOption_favoriteClear(t *testing.T) { Out: osproxy.Stdout, ErrOut: osproxy.Stderr, Args: osproxy.Args[1:], + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, }, args: args{ @@ -845,8 +1023,10 @@ func Test_favoriteClearOption_favoriteClear(t *testing.T) { Out: osproxy.Stdout, ErrOut: osproxy.Stderr, Args: osproxy.Args[1:], + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: nil, + PromptuiProxy: mockPromptuiProxy, Utility: util, }, args: args{ @@ -880,8 +1060,10 @@ func Test_favoriteClearOption_favoriteClear(t *testing.T) { Out: tt.fields.Out, ErrOut: tt.fields.ErrOut, Args: tt.fields.Args, + NoConfirm: false, DBFileDirPathProvider: tt.fields.DBFileDirPathProvider, JrpRepository: tt.fields.JrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: tt.fields.Utility, } if err := o.favoriteClear(tt.args.jrpDBFilePath); (err != nil) != tt.wantErr { @@ -927,6 +1109,13 @@ func Test_favoriteClearOption_writeFavoriteClearResult(t *testing.T) { osProxy, strconvproxy.New(), ) + mockCtrl := gomock.NewController(t) + defer mockCtrl.Finish() + mockPromptInstance := mockpromptuiproxy.NewMockPromptInstanceInterface(mockCtrl) + mockPromptInstance.EXPECT().SetLabel(gomock.Any()).AnyTimes() + mockPromptInstance.EXPECT().Run().Return("y", nil).AnyTimes() + mockPromptuiProxy := mockpromptuiproxy.NewMockPromptui(mockCtrl) + mockPromptuiProxy.EXPECT().NewPrompt().Return(mockPromptInstance).AnyTimes() type fields struct { t *testing.T @@ -949,8 +1138,10 @@ func Test_favoriteClearOption_writeFavoriteClearResult(t *testing.T) { Out: capturer.OutBuffer, ErrOut: capturer.ErrBuffer, Args: osproxy.Args[1:], + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, } favoriteClearOption.writeFavoriteClearResult(repository.RemovedSuccessfully) @@ -970,8 +1161,10 @@ func Test_favoriteClearOption_writeFavoriteClearResult(t *testing.T) { Out: capturer.OutBuffer, ErrOut: capturer.ErrBuffer, Args: osproxy.Args[1:], + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, } favoriteClearOption.writeFavoriteClearResult(repository.RemovedFailed) @@ -991,8 +1184,10 @@ func Test_favoriteClearOption_writeFavoriteClearResult(t *testing.T) { Out: capturer.OutBuffer, ErrOut: capturer.ErrBuffer, Args: osproxy.Args[1:], + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, } favoriteClearOption.writeFavoriteClearResult(repository.RemovedNone) diff --git a/cmd/history_clear_test.go b/cmd/history_clear_test.go index 326972f4..2cc68cdb 100644 --- a/cmd/history_clear_test.go +++ b/cmd/history_clear_test.go @@ -15,6 +15,7 @@ import ( "github.com/yanosea/jrp/app/proxy/fmt" "github.com/yanosea/jrp/app/proxy/io" "github.com/yanosea/jrp/app/proxy/os" + "github.com/yanosea/jrp/app/proxy/promptui" "github.com/yanosea/jrp/app/proxy/sort" "github.com/yanosea/jrp/app/proxy/sql" "github.com/yanosea/jrp/app/proxy/strconv" @@ -26,18 +27,21 @@ import ( "github.com/yanosea/jrp/mock/app/database/jrp/repository" "github.com/yanosea/jrp/mock/app/library/dbfiledirpathprovider" "github.com/yanosea/jrp/mock/app/library/utility" + "github.com/yanosea/jrp/mock/app/proxy/promptui" "github.com/yanosea/jrp/test/testutility" "go.uber.org/mock/gomock" ) func TestNewHistoryClearCommand(t *testing.T) { type args struct { - g *GlobalOption + g *GlobalOption + promptuiProxy promptuiproxy.Promptui } tests := []struct { name string args args wantError bool + setup func(*gomock.Controller, *args) }{ { name: "positive testing", @@ -47,13 +51,27 @@ func TestNewHistoryClearCommand(t *testing.T) { osproxy.New(), strconvproxy.New(), ), + promptuiProxy: nil, }, wantError: false, + setup: func(mockCtrl *gomock.Controller, args *args) { + mockPromptInstance := mockpromptuiproxy.NewMockPromptInstanceInterface(mockCtrl) + mockPromptInstance.EXPECT().SetLabel(gomock.Any()) + mockPromptInstance.EXPECT().Run().Return("y", nil) + mockPromptuiProxy := mockpromptuiproxy.NewMockPromptui(mockCtrl) + mockPromptuiProxy.EXPECT().NewPrompt().Return(mockPromptInstance) + args.promptuiProxy = mockPromptuiProxy + }, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - got := NewHistoryClearCommand(tt.args.g) + if tt.setup != nil { + mockCtrl := gomock.NewController(t) + defer mockCtrl.Finish() + tt.setup(mockCtrl, &tt.args) + } + got := NewHistoryClearCommand(tt.args.g, tt.args.promptuiProxy) if err := got.Execute(); (err != nil) != tt.wantError { t.Errorf("NewHistoryClearCommand().Execute() : error =\n%v", err) } @@ -103,6 +121,21 @@ func Test_historyClearOption_historyClearRunE(t *testing.T) { ) mockCtrl := gomock.NewController(t) defer mockCtrl.Finish() + mockPromptInstance := mockpromptuiproxy.NewMockPromptInstanceInterface(mockCtrl) + mockPromptInstance.EXPECT().SetLabel(gomock.Any()).AnyTimes() + mockPromptInstance.EXPECT().Run().Return("y", nil).AnyTimes() + mockPromptuiProxy := mockpromptuiproxy.NewMockPromptui(mockCtrl) + mockPromptuiProxy.EXPECT().NewPrompt().Return(mockPromptInstance).AnyTimes() + noMockPromptInstance := mockpromptuiproxy.NewMockPromptInstanceInterface(mockCtrl) + noMockPromptInstance.EXPECT().SetLabel(gomock.Any()) + noMockPromptInstance.EXPECT().Run().Return("n", nil) + noMockPromptuiProxy := mockpromptuiproxy.NewMockPromptui(mockCtrl) + noMockPromptuiProxy.EXPECT().NewPrompt().Return(noMockPromptInstance) + errMockPromptInstance := mockpromptuiproxy.NewMockPromptInstanceInterface(mockCtrl) + errMockPromptInstance.EXPECT().SetLabel(gomock.Any()) + errMockPromptInstance.EXPECT().Run().Return("", errors.New("PromptInstance.Run() failed")) + errMockPromptuiProxy := mockpromptuiproxy.NewMockPromptui(mockCtrl) + errMockPromptuiProxy.EXPECT().NewPrompt().Return(errMockPromptInstance) mockDBFileDirPathProvider := mockdbfiledirpathprovider.NewMockDBFileDirPathProvidable(mockCtrl) mockDBFileDirPathProvider.EXPECT().GetJrpDBFileDirPath().Return("", errors.New("DBFileDirPathProvider.GetJrpDBFileDirPath() failed")) mockUtility := mockutility.NewMockUtilityInterface(mockCtrl) @@ -123,6 +156,80 @@ func Test_historyClearOption_historyClearRunE(t *testing.T) { setup func() cleanup func() }{ + { + name: "positive testing (answering not yes on the prompt)", + fields: fields{ + t: t, + fnc: func() { + historyClearOption := &historyClearOption{ + Out: capturer.OutBuffer, + ErrOut: capturer.ErrBuffer, + Args: osproxy.Args[1:], + Force: false, + NoConfirm: false, + DBFileDirPathProvider: dbFileDirPathProvider, + JrpRepository: jrpRepository, + PromptuiProxy: noMockPromptuiProxy, + Utility: util, + } + if err := historyClearOption.historyClearRunE(nil, nil); err != nil { + t.Errorf("historyClearOption.historyClearRunE() : error =\n%v", err) + } + }, + capturer: capturer, + }, + wantStdOut: constant.HISTORY_CLEAR_MESSAGE_CLEAR_CANCELED + "\n", + wantStdErr: "", + wantJrps: nil, + wantErr: false, + setup: func() { + if err := osProxy.RemoveAll(jrpDBFilePath); err != nil { + t.Errorf("OsProxy.RemoveAll() : error =\n%v", err) + } + }, + cleanup: func() { + if err := osProxy.RemoveAll(jrpDBFilePath); err != nil { + t.Errorf("OsProxy.RemoveAll() : error =\n%v", err) + } + }, + }, + { + name: "positive testing (set no-confirm option)", + fields: fields{ + t: t, + fnc: func() { + historyClearOption := &historyClearOption{ + Out: capturer.OutBuffer, + ErrOut: capturer.ErrBuffer, + Args: osproxy.Args[1:], + Force: false, + NoConfirm: true, + DBFileDirPathProvider: dbFileDirPathProvider, + JrpRepository: jrpRepository, + PromptuiProxy: nil, + Utility: util, + } + if err := historyClearOption.historyClearRunE(nil, nil); err != nil { + t.Errorf("historyClearOption.historyClearRunE() : error =\n%v", err) + } + }, + capturer: capturer, + }, + wantStdOut: colorProxy.YellowString(constant.HISTORY_CLEAR_MESSAGE_CLEARED_NONE) + "\n", + wantStdErr: "", + wantJrps: nil, + wantErr: false, + setup: func() { + if err := osProxy.RemoveAll(jrpDBFilePath); err != nil { + t.Errorf("OsProxy.RemoveAll() : error =\n%v", err) + } + }, + cleanup: func() { + if err := osProxy.RemoveAll(jrpDBFilePath); err != nil { + t.Errorf("OsProxy.RemoveAll() : error =\n%v", err) + } + }, + }, { name: "positive testing (no jrps in the database file)", fields: fields{ @@ -133,8 +240,10 @@ func Test_historyClearOption_historyClearRunE(t *testing.T) { ErrOut: capturer.ErrBuffer, Args: osproxy.Args[1:], Force: false, + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, } if err := historyClearOption.historyClearRunE(nil, nil); err != nil { @@ -168,8 +277,10 @@ func Test_historyClearOption_historyClearRunE(t *testing.T) { ErrOut: capturer.ErrBuffer, Args: osproxy.Args[1:], Force: false, + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, } if err := historyClearOption.historyClearRunE(nil, nil); err != nil { @@ -217,8 +328,10 @@ func Test_historyClearOption_historyClearRunE(t *testing.T) { ErrOut: capturer.ErrBuffer, Args: osproxy.Args[1:], Force: true, + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, } if err := historyClearOption.historyClearRunE(nil, nil); err != nil { @@ -266,8 +379,10 @@ func Test_historyClearOption_historyClearRunE(t *testing.T) { ErrOut: capturer.ErrBuffer, Args: osproxy.Args[1:], Force: false, + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, } if err := historyClearOption.historyClearRunE(nil, nil); err != nil { @@ -328,8 +443,10 @@ func Test_historyClearOption_historyClearRunE(t *testing.T) { ErrOut: capturer.ErrBuffer, Args: osproxy.Args[1:], Force: true, + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, } if err := historyClearOption.historyClearRunE(nil, nil); err != nil { @@ -380,8 +497,10 @@ func Test_historyClearOption_historyClearRunE(t *testing.T) { ErrOut: capturer.ErrBuffer, Args: osproxy.Args[1:], Force: false, + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, } if err := historyClearOption.historyClearRunE(nil, nil); err != nil { @@ -436,8 +555,10 @@ func Test_historyClearOption_historyClearRunE(t *testing.T) { ErrOut: capturer.ErrBuffer, Args: osproxy.Args[1:], Force: true, + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, } if err := historyClearOption.historyClearRunE(nil, nil); err != nil { @@ -492,8 +613,10 @@ func Test_historyClearOption_historyClearRunE(t *testing.T) { ErrOut: capturer.ErrBuffer, Args: osproxy.Args[1:], Force: false, + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, } if err := historyClearOption.historyClearRunE(nil, nil); err != nil { @@ -570,8 +693,10 @@ func Test_historyClearOption_historyClearRunE(t *testing.T) { ErrOut: capturer.ErrBuffer, Args: osproxy.Args[1:], Force: true, + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, } if err := historyClearOption.historyClearRunE(nil, nil); err != nil { @@ -629,8 +754,10 @@ func Test_historyClearOption_historyClearRunE(t *testing.T) { ErrOut: capturer.ErrBuffer, Args: osproxy.Args[1:], Force: false, + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, } if err := historyClearOption.historyClearRunE(nil, nil); err != nil { @@ -698,8 +825,10 @@ func Test_historyClearOption_historyClearRunE(t *testing.T) { ErrOut: capturer.ErrBuffer, Args: osproxy.Args[1:], Force: true, + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, } if err := historyClearOption.historyClearRunE(nil, nil); err != nil { @@ -757,8 +886,10 @@ func Test_historyClearOption_historyClearRunE(t *testing.T) { ErrOut: capturer.ErrBuffer, Args: osproxy.Args[1:], Force: false, + NoConfirm: false, DBFileDirPathProvider: mockDBFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, } if err := historyClearOption.historyClearRunE(nil, nil); err != nil { @@ -792,8 +923,10 @@ func Test_historyClearOption_historyClearRunE(t *testing.T) { ErrOut: capturer.ErrBuffer, Args: osproxy.Args[1:], Force: false, + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: mockUtility, } if err := historyClearOption.historyClearRunE(nil, nil); err != nil { @@ -817,6 +950,43 @@ func Test_historyClearOption_historyClearRunE(t *testing.T) { } }, }, + { + name: "negative testing (PromptInstance.run() failed)", + fields: fields{ + t: t, + fnc: func() { + historyClearOption := &historyClearOption{ + Out: capturer.OutBuffer, + ErrOut: capturer.ErrBuffer, + Args: osproxy.Args[1:], + Force: false, + NoConfirm: false, + DBFileDirPathProvider: dbFileDirPathProvider, + JrpRepository: jrpRepository, + PromptuiProxy: errMockPromptuiProxy, + Utility: util, + } + if err := historyClearOption.historyClearRunE(nil, nil); err != nil { + fmt.Printf("historyClearOption.historyClearRunE() : error =\n%v", err) + } + }, + capturer: capturer, + }, + wantStdOut: "", + wantStdErr: testutility.TEST_OUTPUT_ANY, + wantJrps: nil, + wantErr: false, + setup: func() { + if err := osProxy.RemoveAll(jrpDBFilePath); err != nil { + t.Errorf("OsProxy.RemoveAll() : error =\n%v", err) + } + }, + cleanup: func() { + if err := osProxy.RemoveAll(jrpDBFilePath); err != nil { + t.Errorf("OsProxy.RemoveAll() : error =\n%v", err) + } + }, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { @@ -884,14 +1054,23 @@ func Test_historyClearOption_historyClear(t *testing.T) { strconvproxy.New(), stringsproxy.New(), ) + mockCtrl := gomock.NewController(t) + defer mockCtrl.Finish() + mockPromptInstance := mockpromptuiproxy.NewMockPromptInstanceInterface(mockCtrl) + mockPromptInstance.EXPECT().SetLabel(gomock.Any()).AnyTimes() + mockPromptInstance.EXPECT().Run().Return("y", nil).AnyTimes() + mockPromptuiProxy := mockpromptuiproxy.NewMockPromptui(mockCtrl) + mockPromptuiProxy.EXPECT().NewPrompt().Return(mockPromptInstance).AnyTimes() type fields struct { Out ioproxy.WriterInstanceInterface ErrOut ioproxy.WriterInstanceInterface Args []string Force bool + NoConfirm bool DBFileDirPathProvider dbfiledirpathprovider.DBFileDirPathProvidable JrpRepository repository.JrpRepositoryInterface + PromptuiProxy promptuiproxy.Promptui Utility utility.UtilityInterface } type args struct { @@ -913,8 +1092,10 @@ func Test_historyClearOption_historyClear(t *testing.T) { ErrOut: osproxy.Stderr, Args: osproxy.Args[1:], Force: false, + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, }, args: args{ @@ -940,8 +1121,10 @@ func Test_historyClearOption_historyClear(t *testing.T) { ErrOut: osproxy.Stderr, Args: osproxy.Args[1:], Force: false, + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, }, args: args{ @@ -983,6 +1166,7 @@ func Test_historyClearOption_historyClear(t *testing.T) { Force: true, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, }, args: args{ @@ -1022,8 +1206,10 @@ func Test_historyClearOption_historyClear(t *testing.T) { ErrOut: osproxy.Stderr, Args: osproxy.Args[1:], Force: false, + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, }, args: args{ @@ -1078,6 +1264,7 @@ func Test_historyClearOption_historyClear(t *testing.T) { Force: true, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, }, args: args{ @@ -1120,8 +1307,10 @@ func Test_historyClearOption_historyClear(t *testing.T) { ErrOut: osproxy.Stderr, Args: osproxy.Args[1:], Force: false, + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, }, args: args{ @@ -1170,6 +1359,7 @@ func Test_historyClearOption_historyClear(t *testing.T) { Force: true, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, }, args: args{ @@ -1216,8 +1406,10 @@ func Test_historyClearOption_historyClear(t *testing.T) { ErrOut: osproxy.Stderr, Args: osproxy.Args[1:], Force: false, + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, }, args: args{ @@ -1288,6 +1480,7 @@ func Test_historyClearOption_historyClear(t *testing.T) { Force: true, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, }, args: args{ @@ -1337,8 +1530,10 @@ func Test_historyClearOption_historyClear(t *testing.T) { ErrOut: osproxy.Stderr, Args: osproxy.Args[1:], Force: false, + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, }, args: args{ @@ -1400,6 +1595,7 @@ func Test_historyClearOption_historyClear(t *testing.T) { Force: true, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, }, args: args{ @@ -1449,6 +1645,7 @@ func Test_historyClearOption_historyClear(t *testing.T) { ErrOut: osproxy.Stderr, Args: osproxy.Args[1:], Force: false, + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: nil, Utility: util, @@ -1532,6 +1729,13 @@ func Test_historyClearOption_writeHistoryClearResult(t *testing.T) { osProxy, strconvproxy.New(), ) + mockCtrl := gomock.NewController(t) + defer mockCtrl.Finish() + mockPromptInstance := mockpromptuiproxy.NewMockPromptInstanceInterface(mockCtrl) + mockPromptInstance.EXPECT().SetLabel(gomock.Any()).AnyTimes() + mockPromptInstance.EXPECT().Run().Return("y", nil).AnyTimes() + mockPromptuiProxy := mockpromptuiproxy.NewMockPromptui(mockCtrl) + mockPromptuiProxy.EXPECT().NewPrompt().Return(mockPromptInstance).AnyTimes() type fields struct { t *testing.T @@ -1555,8 +1759,10 @@ func Test_historyClearOption_writeHistoryClearResult(t *testing.T) { ErrOut: capturer.ErrBuffer, Args: osproxy.Args[1:], Force: false, + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, } historyClearOption.writeHistoryClearResult(repository.RemovedSuccessfully) @@ -1577,8 +1783,10 @@ func Test_historyClearOption_writeHistoryClearResult(t *testing.T) { ErrOut: capturer.ErrBuffer, Args: osproxy.Args[1:], Force: false, + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, } historyClearOption.writeHistoryClearResult(repository.RemovedFailed) @@ -1599,8 +1807,10 @@ func Test_historyClearOption_writeHistoryClearResult(t *testing.T) { ErrOut: capturer.ErrBuffer, Args: osproxy.Args[1:], Force: false, + NoConfirm: false, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, } historyClearOption.writeHistoryClearResult(repository.RemovedNone) @@ -1623,6 +1833,7 @@ func Test_historyClearOption_writeHistoryClearResult(t *testing.T) { Force: true, DBFileDirPathProvider: dbFileDirPathProvider, JrpRepository: jrpRepository, + PromptuiProxy: mockPromptuiProxy, Utility: util, } historyClearOption.writeHistoryClearResult(repository.RemovedNone) diff --git a/docs/coverage.html b/docs/coverage.html index 7d2f43d7..4a1bf282 100644 --- a/docs/coverage.html +++ b/docs/coverage.html @@ -97,117 +97,121 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + @@ -2519,7 +2523,60 @@ } -