system_setup_tool/pkg/packagemanager/cargo_test.go

46 lines
1.1 KiB
Go

// cargo_test.go
package packagemanager
import (
"codeberg.org/Pata1704/system_setup_tool/internal/shell"
"os/exec"
"testing"
)
func TestCargoManager_Name(t *testing.T) {
cm := &CargoManager{}
if name := cm.Name(); name != "Cargo" {
t.Errorf("Expected name to be 'Cargo', got %s", name)
}
}
func TestCargoManager_InstallManager(t *testing.T) {
cm := &CargoManager{}
// Mock exec.LookPath
shell.ExecLookPath = func(file string) (string, error) {
if file == "cargo" {
return "/usr/bin/cargo", nil
}
return "", exec.ErrNotFound
}
defer func() { shell.ExecLookPath = exec.LookPath }()
if err := cm.InstallManager(); err != nil {
t.Errorf("Expected no error, got %v", err)
}
}
func TestCargoManager_InstallPackage(t *testing.T) {
cm := &CargoManager{}
// Mock exec.Command
shell.ExecCommand = func(name string, arg ...string) *exec.Cmd {
return exec.Command("echo", "mocked cargo install")
}
defer func() { shell.ExecCommand = exec.Command }()
if err := cm.InstallPackage("test-package"); err != nil {
t.Errorf("Expected no error, got %v", err)
}
}