Skip to content
This repository has been archived by the owner on Jul 12, 2022. It is now read-only.

Default tree refactoring to use file manager of package stream #568

Merged
Merged
2 changes: 1 addition & 1 deletion cmd/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ func buildCommands() *cobra.Command {
ctxFindRemover := rcontext.NewFindRemover(ritchieHomeDir, ctxFinder, ctxRemover)
credSetter := credential.NewSetter(ritchieHomeDir, ctxFinder)
credFinder := credential.NewFinder(ritchieHomeDir, ctxFinder, fileManager)
treeManager := tree.NewTreeManager(ritchieHomeDir, repoLister, api.CoreCmds)
treeManager := tree.NewTreeManager(ritchieHomeDir, repoLister, api.CoreCmds, fileManager)
credSettings := credential.NewSettings(fileManager, dirManager, userHomeDir)
autocompleteGen := autocomplete.NewGenerator(treeManager)
credResolver := envcredential.NewResolver(credFinder, credSetter, inputPassword)
Expand Down
12 changes: 11 additions & 1 deletion pkg/autocomplete/generator_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,16 @@ func (repoListerMock) List() (formula.Repos, error) {
return formula.Repos{}, nil
}

type FileReadExisterMock struct{}

func (m FileReadExisterMock) Read(path string) ([]byte, error) {
return []byte("some data"), nil
}

func (m FileReadExisterMock) Exists(path string) bool {
return false
}

func TestGenerate(t *testing.T) {
type in struct {
shell ShellName
Expand All @@ -41,7 +51,7 @@ func TestGenerate(t *testing.T) {
err error
}

treeMan := tree.NewTreeManager("../../testdata", repoListerMock{}, api.Commands{})
treeMan := tree.NewTreeManager("../../testdata", repoListerMock{}, api.Commands{}, FileReadExisterMock{})
autocomplete := NewGenerator(treeMan)

tests := []struct {
Expand Down
12 changes: 11 additions & 1 deletion pkg/formula/creator/creator_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ func TestCreator(t *testing.T) {
_ = dirManager.Remove(resultDir)
_ = dirManager.Create(resultDir)

treeMan := tree.NewTreeManager("../../testdata", repoListerMock{}, api.CoreCmds)
treeMan := tree.NewTreeManager("../../testdata", repoListerMock{}, api.CoreCmds, FileReadExisterMock{})

tplM := template.NewManager("../../../testdata", dirManager)

Expand Down Expand Up @@ -198,3 +198,13 @@ type repoListerMock struct{}
func (repoListerMock) List() (formula.Repos, error) {
return formula.Repos{}, nil
}

type FileReadExisterMock struct{}

func (m FileReadExisterMock) Read(path string) ([]byte, error) {
return []byte("some data"), nil
}

func (m FileReadExisterMock) Exists(path string) bool {
return false
}
19 changes: 10 additions & 9 deletions pkg/formula/tree/default_tree.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,10 @@ package tree
import (
"encoding/json"
"fmt"
"io/ioutil"

"github.com/ZupIT/ritchie-cli/pkg/api"
"github.com/ZupIT/ritchie-cli/pkg/file/fileutil"
"github.com/ZupIT/ritchie-cli/pkg/formula"
"github.com/ZupIT/ritchie-cli/pkg/stream"
)

const (
Expand All @@ -37,10 +36,11 @@ type Manager struct {
ritchieHome string
repoLister formula.RepositoryLister
coreCmds []api.Command
file stream.FileReadExister
}

func NewTreeManager(ritchieHome string, rl formula.RepositoryLister, coreCmds []api.Command) Manager {
return Manager{ritchieHome: ritchieHome, repoLister: rl, coreCmds: coreCmds}
func NewTreeManager(ritchieHome string, rl formula.RepositoryLister, coreCmds []api.Command, file stream.FileReadExister) Manager {
return Manager{ritchieHome: ritchieHome, repoLister: rl, coreCmds: coreCmds, file: file}
}

func (d Manager) Tree() (map[string]formula.Tree, error) {
Expand Down Expand Up @@ -116,21 +116,22 @@ func (d Manager) MergedTree(core bool) formula.Tree {

func (d Manager) localTree() (formula.Tree, error) {
treeCmdFile := fmt.Sprintf(treeLocalCmdPattern, d.ritchieHome)
return loadTree(treeCmdFile)
return d.loadTree(treeCmdFile)
}

func (d Manager) treeByRepo(repoName formula.RepoName) (formula.Tree, error) {
treeCmdFile := fmt.Sprintf(treeRepoCmdPattern, d.ritchieHome, repoName)
return loadTree(treeCmdFile)
return d.loadTree(treeCmdFile)
}

func loadTree(treeCmdFile string) (formula.Tree, error) {
func (d Manager) loadTree(treeCmdFile string) (formula.Tree, error) {
tree := formula.Tree{}
if !fileutil.Exists(treeCmdFile) {

if !d.file.Exists(treeCmdFile) {
return tree, nil
}

treeFile, err := ioutil.ReadFile(treeCmdFile)
treeFile, err := d.file.Read(treeCmdFile)
if err != nil {
return tree, err
}
Expand Down
Loading