shoulda_core/specifics/
command.rs1use std::process::Output;
2
3use crate::{assertion_hook::NoOpAssertionHook, Should};
4
5impl<'a> Should<'a, Output> {
6 pub fn succeed(mut self) -> Should<'a, Output, NoOpAssertionHook> {
7 self.internal_assert(
8 self.inner.status.success(),
9 "command was not a success".to_string(),
10 );
11 self.normalize()
12 }
13
14 pub fn code(mut self, expected: i32) -> Should<'a, Output, NoOpAssertionHook> {
15 let actual = self.inner.status.code();
16 self.internal_assert(
17 actual == Some(expected),
18 format!("{:?} did not equal {}", actual, expected),
19 );
20 self.normalize()
21 }
22
23 pub fn stdout(mut self, bytes: &[u8]) -> Should<'a, Output, NoOpAssertionHook> {
24 self.internal_assert(
25 self.inner.stdout.as_slice() == bytes,
26 format!("{:?} did not equal {:?}", self.inner.stdout, bytes),
27 );
28 self.normalize()
29 }
30
31 pub fn stderr(mut self, bytes: &[u8]) -> Should<'a, Output, NoOpAssertionHook> {
32 self.internal_assert(
33 self.inner.stderr.as_slice() == bytes,
34 format!("{:?} did not equal {:?}", self.inner.stdout, bytes),
35 );
36 self.normalize()
37 }
38}