aboutsummaryrefslogtreecommitdiff
path: root/mingling_core/tests/test-comp
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-06-20 01:11:25 +0800
committer魏曹先生 <1992414357@qq.com>2026-06-20 01:11:25 +0800
commit9d491352d161ee629cc47459537344ba0ea4bb35 (patch)
tree40d847da5cfafce48c3ca99c78bcc077da4c4fb2 /mingling_core/tests/test-comp
parent8749087c5035fbe4c0dce0893a39e0e2265fa130 (diff)
Add shared `MockProgramCollect` and conditional `Groupped` bounds
Extract duplicate `MockCollect` implementations into a reusable `MockProgramCollect` type. Conditionally require `Serialize` on the `Groupped` trait when the `general_renderer` feature is enabled.
Diffstat (limited to 'mingling_core/tests/test-comp')
-rw-r--r--mingling_core/tests/test-comp/tests/integration.rs55
1 files changed, 4 insertions, 51 deletions
diff --git a/mingling_core/tests/test-comp/tests/integration.rs b/mingling_core/tests/test-comp/tests/integration.rs
index 4e6455e..37aa716 100644
--- a/mingling_core/tests/test-comp/tests/integration.rs
+++ b/mingling_core/tests/test-comp/tests/integration.rs
@@ -1,55 +1,7 @@
-use mingling::Groupped;
+use mingling::MockProgramCollect;
use mingling::Program;
-use mingling::ProgramCollect;
-use mingling::RenderResult;
use mingling::comp::{ShellContext, ShellFlag, Suggest, SuggestItem};
-/// Minimal mock collector that satisfies `C: ProgramCollect<Enum = C>`
-/// by setting `Enum = Self`.
-#[derive(Debug, Clone, PartialEq)]
-struct MockCollect;
-
-impl Groupped<MockCollect> for MockCollect {
- fn member_id() -> MockCollect {
- MockCollect
- }
-}
-
-impl ProgramCollect for MockCollect {
- type Enum = MockCollect;
- type ErrorDispatcherNotFound = MockCollect;
- type ErrorRendererNotFound = MockCollect;
- type ResultEmpty = MockCollect;
-
- fn build_renderer_not_found(_member_id: MockCollect) -> mingling::AnyOutput<MockCollect> {
- unimplemented!()
- }
- fn build_dispatcher_not_found(_args: Vec<String>) -> mingling::AnyOutput<MockCollect> {
- unimplemented!()
- }
- fn build_empty_result() -> mingling::AnyOutput<MockCollect> {
- unimplemented!()
- }
- fn render(_any: mingling::AnyOutput<MockCollect>, _r: &mut RenderResult) {
- unimplemented!()
- }
- fn render_help(_any: mingling::AnyOutput<MockCollect>, _r: &mut RenderResult) {
- unimplemented!()
- }
- fn do_chain(_any: mingling::AnyOutput<MockCollect>) -> mingling::ChainProcess<MockCollect> {
- unimplemented!()
- }
- fn do_comp(_any: &mingling::AnyOutput<MockCollect>, _ctx: &ShellContext) -> Suggest {
- unimplemented!()
- }
- fn has_renderer(_any: &mingling::AnyOutput<MockCollect>) -> bool {
- unimplemented!()
- }
- fn has_chain(_any: &mingling::AnyOutput<MockCollect>) -> bool {
- unimplemented!()
- }
-}
-
#[test]
fn test_shell_context_parsing_full() {
let args = vec![
@@ -112,12 +64,13 @@ fn test_suggest_item_with_description() {
#[test]
fn test_program_is_completing() {
- let program: Program<MockCollect> = Program::new_with_args(["myapp", "__comp", "hello", ""]);
+ let program: Program<MockProgramCollect> =
+ Program::new_with_args(["myapp", "__comp", "hello", ""]);
assert!(program.is_completing());
}
#[test]
fn test_program_is_not_completing() {
- let program: Program<MockCollect> = Program::new_with_args(["myapp", "hello"]);
+ let program: Program<MockProgramCollect> = Program::new_with_args(["myapp", "hello"]);
assert!(!program.is_completing());
}