aboutsummaryrefslogtreecommitdiff
path: root/examples/example-unit-test
diff options
context:
space:
mode:
Diffstat (limited to 'examples/example-unit-test')
-rw-r--r--examples/example-unit-test/Cargo.lock10
-rw-r--r--examples/example-unit-test/src/main.rs44
2 files changed, 35 insertions, 19 deletions
diff --git a/examples/example-unit-test/Cargo.lock b/examples/example-unit-test/Cargo.lock
index fa06882..2be0d51 100644
--- a/examples/example-unit-test/Cargo.lock
+++ b/examples/example-unit-test/Cargo.lock
@@ -11,13 +11,13 @@ dependencies = [
[[package]]
name = "just_fmt"
-version = "0.1.2"
+version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5454cda0d57db59778608d7a47bff5b16c6705598265869fb052b657f66cf05e"
+checksum = "6170dccbc3ea15dfb7f2da964097f814aba1dd8f746d4ffc56f33245c38e6d96"
[[package]]
name = "mingling"
-version = "0.2.0"
+version = "0.3.0"
dependencies = [
"mingling_core",
"mingling_macros",
@@ -25,14 +25,14 @@ dependencies = [
[[package]]
name = "mingling_core"
-version = "0.2.0"
+version = "0.3.0"
dependencies = [
"just_fmt",
]
[[package]]
name = "mingling_macros"
-version = "0.2.0"
+version = "0.3.0"
dependencies = [
"just_fmt",
"proc-macro2",
diff --git a/examples/example-unit-test/src/main.rs b/examples/example-unit-test/src/main.rs
index b89c629..b85ff01 100644
--- a/examples/example-unit-test/src/main.rs
+++ b/examples/example-unit-test/src/main.rs
@@ -7,6 +7,7 @@
//! ```
use mingling::prelude::*;
+use std::io::Write;
#[cfg(test)]
mod tests {
@@ -41,25 +42,25 @@ mod tests {
#[test]
fn test_render_result_name() {
let r = render_result_name(ResultName::new("Peter".into()));
- assert_eq!(r, "Hello, Peter!\n")
+ assert_eq!(r.to_string().as_str(), "Hello, Peter!\n")
}
#[test]
fn test_render_error_no_name_provided() {
let r = render_error_no_name_provided(ErrorNoNameProvided::default());
- assert_eq!(r, "No name provided\n")
+ assert_eq!(r.to_string().as_str(), "No name provided\n")
}
#[test]
fn test_render_error_name_not_available() {
let r = render_error_name_not_available(ErrorNameNotAvailable::default());
- assert_eq!(r, "Name not available\n")
+ assert_eq!(r.to_string().as_str(), "Name not available\n")
}
#[test]
fn test_render_error_name_too_long() {
let r = render_error_name_too_long(ErrorNameTooLong::new(17));
- assert_eq!(r, "Name too long: 17 > 10\n")
+ assert_eq!(r.to_string().as_str(), "Name too long: 17 > 10\n")
}
// --------- IMPORTANT ---------
}
@@ -93,32 +94,47 @@ fn handle_hello(args: EntryHello) -> Next {
/// Renders a successful greeting with the given name.
#[renderer]
-fn render_result_name(name: ResultName) -> String {
- r_println!("Hello, {}!", *name);
+fn render_result_name(name: ResultName) -> RenderResult {
+ let mut render_result = RenderResult::new();
+ writeln!(render_result, "Hello, {}!", *name).ok();
+ render_result
}
/// Renders the error when no name is provided.
#[renderer]
-fn render_error_no_name_provided(_: ErrorNoNameProvided) -> String {
- r_println!("No name provided");
+fn render_error_no_name_provided(_: ErrorNoNameProvided) -> RenderResult {
+ let mut render_result = RenderResult::new();
+ writeln!(render_result, "No name provided").ok();
+ render_result
}
/// Renders the error when the name is already taken.
#[renderer]
-fn render_error_name_not_available(_: ErrorNameNotAvailable) -> String {
- r_println!("Name not available");
+fn render_error_name_not_available(_: ErrorNameNotAvailable) -> RenderResult {
+ let mut render_result = RenderResult::new();
+ writeln!(render_result, "Name not available").ok();
+ render_result
}
/// Renders the error when the name exceeds the maximum length.
#[renderer]
-fn render_error_name_too_long(len: ErrorNameTooLong) -> String {
- r_println!("Name too long: {} > 10", *len);
+fn render_error_name_too_long(len: ErrorNameTooLong) -> RenderResult {
+ let mut render_result = RenderResult::new();
+ writeln!(render_result, "Name too long: {} > 10", *len).ok();
+ render_result
}
/// Renders the error when the dispatcher (subcommand) is not found.
#[renderer]
-fn render_dispatcher_not_found(err: ErrorDispatcherNotFound) {
- r_println!("Command not found: \"{}\"", err.inner.join(" "));
+fn render_dispatcher_not_found(err: ErrorDispatcherNotFound) -> RenderResult {
+ let mut render_result = RenderResult::new();
+ writeln!(
+ render_result,
+ "Command not found: \"{}\"",
+ err.inner.join(" ")
+ )
+ .ok();
+ render_result
}
gen_program!();