From 8fe3390d064303b86133a1d2983144a4818a7121 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Tue, 23 Jun 2026 03:49:00 +0900 Subject: test(command): port InitCommandTest Port the pure-method cases (parse/namespace/formatAuthors/git/vendor-ignore) and build the ApplicationTester / initTempComposer harness the run cases need. Supporting production changes: - carry the streamable input stream as PhpResource (not PhpMixed) and add InputInterface::as_streamable so QuestionHelper reads the injected stream - add StreamOutput/ConsoleOutput __set_stream test helpers and ApplicationHandle::set_catch_exceptions for the tester - implement the interact() author validator via parse_author_string Co-Authored-By: Claude Opus 4.8 (1M context) --- .../src/symfony/console/input/input_interface.rs | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'crates/shirabe-external-packages/src/symfony/console/input/input_interface.rs') diff --git a/crates/shirabe-external-packages/src/symfony/console/input/input_interface.rs b/crates/shirabe-external-packages/src/symfony/console/input/input_interface.rs index c115df0..ccb5a98 100644 --- a/crates/shirabe-external-packages/src/symfony/console/input/input_interface.rs +++ b/crates/shirabe-external-packages/src/symfony/console/input/input_interface.rs @@ -1,6 +1,7 @@ //! ref: composer/vendor/symfony/console/Input/InputInterface.php use crate::symfony::console::input::input_definition::InputDefinition; +use crate::symfony::console::input::streamable_input_interface::StreamableInputInterface; use shirabe_php_shim::PhpMixed; pub trait InputInterface: std::fmt::Debug + shirabe_php_shim::AsAny { @@ -41,4 +42,10 @@ pub trait InputInterface: std::fmt::Debug + shirabe_php_shim::AsAny { fn is_interactive(&self) -> bool; fn set_interactive(&mut self, interactive: bool); + + /// Models PHP's `$input instanceof StreamableInputInterface` check. Streamable inputs override + /// this to return `Some(self)`; everything else falls back to `None`. + fn as_streamable(&self) -> Option<&dyn StreamableInputInterface> { + None + } } -- cgit v1.3.1