From e97dc6e64c1be4bf78c420b11cec2a18dfd506d4 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 28 Jun 2026 14:30:41 +0900 Subject: test(tests): use mockall for hand-written interface mocks Replace hand-written mock/stub structs that re-implemented PHPUnit mock-builder behavior (record-and-verify, manual call counters, unreachable!() guards) with mockall::mock! locals across: - package/loader: MockLoader, VersionGuesserMock - command: ArchiveManager/RepositoryManager/EventDispatcher mocks - util: ConfigSource/AuthJson mocks (auth_helper, bitbucket, github, forgejo, gitlab) - repository/vcs: github_driver NullConfigSource - installer: CountingInstaller, RecordingBinaryInstaller, and the DownloadManager mock (formerly common/downloader_stub.rs, now deleted) - downloader: download_manager create_downloader_mock Verification (counts/args) now lives in mockall expectations checked on drop. installation_manager BinaryInstaller is left hand-written because its as_binary_presence_interface seam returns Some(&mut self), which mockall cannot express; io_stub and io_mock are left as-is. Co-Authored-By: Claude Opus 4.8 (1M context) --- crates/shirabe/tests/downloader/download_manager_test.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'crates/shirabe/tests/downloader/download_manager_test.rs') diff --git a/crates/shirabe/tests/downloader/download_manager_test.rs b/crates/shirabe/tests/downloader/download_manager_test.rs index 10fd1a9..e18643e 100644 --- a/crates/shirabe/tests/downloader/download_manager_test.rs +++ b/crates/shirabe/tests/downloader/download_manager_test.rs @@ -11,7 +11,6 @@ use shirabe::package::handle::{CompletePackageHandle, PackageInterfaceHandle}; use shirabe_php_shim::{PhpMixed, RuntimeException}; use shirabe_semver::VersionParser; -use crate::downloader_stub::DownloaderStub; use crate::io_stub::IOStub; // PHP mocks `Composer\Downloader\DownloaderInterface` with getMockBuilder. @@ -95,7 +94,7 @@ fn make_package(name: &str, is_dev: bool) -> PackageInterfaceHandle { /// ref: DownloadManagerTest::createDownloaderMock fn create_downloader_mock() -> Rc> { - Rc::new(RefCell::new(DownloaderStub::new())) as Rc> + as_dyn(MockDownloader::new()) } /// A `createDownloaderMock()` whose `getInstallationSource()` reports the given -- cgit v1.3.1