Files
panic-cli/internal/platform/mock.go
2025-12-08 07:22:02 -07:00

43 lines
1.2 KiB
Go

package platform
import (
"fmt"
"github.com/Print-and-Panic/panic-cli/internal/git"
)
// MockSystem implements the System interface for dry-runs and testing.
// It logs actions to stdout instead of performing system changes.
type MockSystem struct{}
// Ensure MockSystem implements System
var _ System = (*MockSystem)(nil)
func (m *MockSystem) SetGitIdentity(id git.GitIdentity) error {
fmt.Printf("🔍 [DRY-RUN] Setting Git Identity to: Name='%s', Email='%s'\n", id.Name, id.Email)
return nil
}
func (m *MockSystem) GetCurrentGitIdentity() (git.GitIdentity, error) {
fmt.Println("🔍 [DRY-RUN] Retrieving current Git Identity (Mocked)")
return git.GitIdentity{
Name: "Mock User",
Email: "mock@example.com",
}, nil
}
func (m *MockSystem) GetLocalGitIdentity() (git.GitIdentity, error) {
fmt.Println("🔍 [DRY-RUN] Checking for local Git Identity (Mocked: None found)")
return git.GitIdentity{}, nil
}
func (m *MockSystem) SetTheme(theme string) error {
fmt.Printf("🔍 [DRY-RUN] Setting KDE Theme to: '%s'\n", theme)
return nil
}
func (m *MockSystem) GetTheme() (string, error) {
fmt.Println("🔍 [DRY-RUN] Retrieving current KDE Theme (Mocked)")
return "Mock Theme", nil
}