diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-06-23 03:49:00 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-06-23 03:49:29 +0900 |
| commit | 8fe3390d064303b86133a1d2983144a4818a7121 (patch) | |
| tree | 3d7979e8fcce3db28ec9edc9b1ce16a593026454 /crates/shirabe-external-packages/src/symfony/console/input/input_interface.rs | |
| parent | c644aa4df0dfcd58e3f0a1372611921678ed6c6d (diff) | |
| download | php-shirabe-8fe3390d064303b86133a1d2983144a4818a7121.tar.gz php-shirabe-8fe3390d064303b86133a1d2983144a4818a7121.tar.zst php-shirabe-8fe3390d064303b86133a1d2983144a4818a7121.zip | |
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) <noreply@anthropic.com>
Diffstat (limited to 'crates/shirabe-external-packages/src/symfony/console/input/input_interface.rs')
| -rw-r--r-- | crates/shirabe-external-packages/src/symfony/console/input/input_interface.rs | 7 |
1 files changed, 7 insertions, 0 deletions
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 + } } |
