package packagemanager import ( "testing" ) func TestNewOSManager(t *testing.T) { sudoPassword := "testpassword" manager := NewOSManager(sudoPassword) if manager.OS == nil { t.Error("Expected OS to be non-nil") } if manager.SudoPassword != sudoPassword { t.Errorf("Expected SudoPassword to be %s, got %s", sudoPassword, manager.SudoPassword) } } func TestOSManagerName(t *testing.T) { manager := &OSManager{} if manager.Name() != "OS Package Manager" { t.Errorf("Expected name to be 'OS Package Manager', got %s", manager.Name()) } } func TestParseOsRelease(t *testing.T) { osReleaseContent := ` ID=ubuntu NAME="Ubuntu" VERSION_ID="20.04" ` os := parseOsRelease(osReleaseContent) if os.ID != "ubuntu" { t.Errorf("Expected ID to be 'ubuntu', got %s", os.ID) } if os.Name != "Ubuntu" { t.Errorf("Expected Name to be 'Ubuntu', got %s", os.Name) } if os.Version != "20.04" { t.Errorf("Expected Version to be '20.04', got %s", os.Version) } if os.PackageManager != "apt" { t.Errorf("Expected PackageManager to be 'apt', got %s", os.PackageManager) } if os.InstallCommand != "apt install -y" { t.Errorf("Expected InstallCommand to be 'apt install -y', got %s", os.InstallCommand) } if os.SearchCommand != "apt search" { t.Errorf("Expected SearchCommand to be 'apt search', got %s", os.SearchCommand) } }