aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/tests/installer
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-06-21 05:09:56 +0900
committernsfisis <nsfisis@gmail.com>2026-06-21 05:09:56 +0900
commit25f96cab45f5da4fba2ef0486a0b0bc8f7ca87b0 (patch)
tree0974de4f5e7a19415f2bcda9adc34cb95263b2e9 /crates/shirabe/tests/installer
parentb07f3a9f51d7ce5ea8ee4dc45da7fe9a55b7f1d4 (diff)
downloadphp-shirabe-25f96cab45f5da4fba2ef0486a0b0bc8f7ca87b0.tar.gz
php-shirabe-25f96cab45f5da4fba2ef0486a0b0bc8f7ca87b0.tar.zst
php-shirabe-25f96cab45f5da4fba2ef0486a0b0bc8f7ca87b0.zip
test: port downloader/installer/io/json/event-dispatcher/functional stubs
All ignored: these mock IO/HttpDownloader (curl)/ProcessExecutor/installers, use ZipArchive/JsonManipulator todo!()s, need Symfony console or schema validation, reflect into ClassLoader, or run end-to-end install/functional fixtures. Wires up the event_dispatcher test target. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe/tests/installer')
-rw-r--r--crates/shirabe/tests/installer/installation_manager_test.rs21
-rw-r--r--crates/shirabe/tests/installer/library_installer_test.rs22
-rw-r--r--crates/shirabe/tests/installer/main.rs3
-rw-r--r--crates/shirabe/tests/installer/suggested_packages_reporter_test.rs24
4 files changed, 70 insertions, 0 deletions
diff --git a/crates/shirabe/tests/installer/installation_manager_test.rs b/crates/shirabe/tests/installer/installation_manager_test.rs
index 66d89ed..0ec4651 100644
--- a/crates/shirabe/tests/installer/installation_manager_test.rs
+++ b/crates/shirabe/tests/installer/installation_manager_test.rs
@@ -1 +1,22 @@
//! ref: composer/tests/Composer/Test/Installer/InstallationManagerTest.php
+
+// These mock individual installers, the repository and IO to drive InstallationManager's
+// add/execute/install/update/uninstall logic; mocking is not available here.
+macro_rules! stub {
+ ($name:ident) => {
+ #[test]
+ #[ignore = "mocks installers/repository/IO to drive InstallationManager; mocking is not available"]
+ fn $name() {
+ todo!()
+ }
+ };
+}
+
+stub!(test_add_get_installer);
+stub!(test_add_remove_installer);
+stub!(test_execute);
+stub!(test_install);
+stub!(test_update_with_equal_types);
+stub!(test_update_with_not_equal_types);
+stub!(test_uninstall);
+stub!(test_install_binary);
diff --git a/crates/shirabe/tests/installer/library_installer_test.rs b/crates/shirabe/tests/installer/library_installer_test.rs
index e15a225..4f2e33e 100644
--- a/crates/shirabe/tests/installer/library_installer_test.rs
+++ b/crates/shirabe/tests/installer/library_installer_test.rs
@@ -1 +1,23 @@
//! ref: composer/tests/Composer/Test/Installer/LibraryInstallerTest.php
+
+// These construct a LibraryInstaller over a temp dir with a mocked IO/Filesystem/repository
+// and mocked packages to drive install/update/uninstall and path resolution.
+macro_rules! stub {
+ ($name:ident) => {
+ #[test]
+ #[ignore = "mocks IO/Filesystem/repository and packages to drive LibraryInstaller; mocking is not available"]
+ fn $name() {
+ todo!()
+ }
+ };
+}
+
+stub!(test_installer_creation_should_not_create_vendor_directory);
+stub!(test_installer_creation_should_not_create_bin_directory);
+stub!(test_is_installed);
+stub!(test_install);
+stub!(test_update);
+stub!(test_uninstall);
+stub!(test_get_install_path_without_target_dir);
+stub!(test_get_install_path_with_target_dir);
+stub!(test_ensure_binaries_installed);
diff --git a/crates/shirabe/tests/installer/main.rs b/crates/shirabe/tests/installer/main.rs
index de72ceb..f5b8c32 100644
--- a/crates/shirabe/tests/installer/main.rs
+++ b/crates/shirabe/tests/installer/main.rs
@@ -2,5 +2,8 @@
mod test_case;
mod binary_installer_test;
+mod installation_manager_test;
mod installer_event_test;
+mod library_installer_test;
mod metapackage_installer_test;
+mod suggested_packages_reporter_test;
diff --git a/crates/shirabe/tests/installer/suggested_packages_reporter_test.rs b/crates/shirabe/tests/installer/suggested_packages_reporter_test.rs
index 4d672f6..f32b10c 100644
--- a/crates/shirabe/tests/installer/suggested_packages_reporter_test.rs
+++ b/crates/shirabe/tests/installer/suggested_packages_reporter_test.rs
@@ -1 +1,25 @@
//! ref: composer/tests/Composer/Test/Installer/SuggestedPackagesReporterTest.php
+
+// These construct a SuggestedPackagesReporter with a mocked IO and assert its accumulated
+// suggestions and formatted output; mocking is not available here.
+macro_rules! stub {
+ ($name:ident) => {
+ #[test]
+ #[ignore = "mocks IO to drive SuggestedPackagesReporter output; mocking is not available"]
+ fn $name() {
+ todo!()
+ }
+ };
+}
+
+stub!(test_constructor);
+stub!(test_get_packages_empty_by_default);
+stub!(test_get_packages);
+stub!(test_add_package_appends);
+stub!(test_add_suggestions_from_package);
+stub!(test_output);
+stub!(test_output_with_no_suggestion_reason);
+stub!(test_output_ignores_formatting);
+stub!(test_output_multiple_packages);
+stub!(test_output_skip_installed_packages);
+stub!(test_output_not_getting_installed_packages_when_no_suggestions);