mirror of https://github.com/eldruin/ds323x-rs
Add tests for invalid values
parent
b9610b6e73
commit
e79b38f629
|
@ -59,3 +59,16 @@ macro_rules! set_test {
|
|||
};
|
||||
}
|
||||
|
||||
#[macro_export]
|
||||
macro_rules! set_invalid_test {
|
||||
($name:ident, $method:ident, $create_method:ident, $value:expr) => {
|
||||
#[test]
|
||||
fn $name() {
|
||||
let mut dev = $create_method(&[]);
|
||||
match dev.$method($value) {
|
||||
Err(Error::InvalidInputData) => (),
|
||||
_ => panic!("InvalidInputData error not returned.")
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ mod common;
|
|||
use common::{ DEVICE_ADDRESS, Register, new_ds3231,
|
||||
new_ds3232, new_ds3234 };
|
||||
extern crate ds323x;
|
||||
use ds323x::{ Hours };
|
||||
use ds323x::{ Hours, Error };
|
||||
|
||||
mod seconds {
|
||||
use super::*;
|
||||
|
@ -29,6 +29,10 @@ mod seconds {
|
|||
|
||||
set_test!(can_set_ds3234, set_seconds, new_ds3234, 1,
|
||||
SpiTrans::write(vec![Register::SECONDS + 0x80, 1]));
|
||||
|
||||
set_invalid_test!(cannot_set_invalid_ds3231, set_seconds, new_ds3231, 60);
|
||||
set_invalid_test!(cannot_set_invalid_ds3232, set_seconds, new_ds3232, 60);
|
||||
set_invalid_test!(cannot_set_invalid_ds3234, set_seconds, new_ds3234, 60);
|
||||
}
|
||||
|
||||
mod minutes {
|
||||
|
@ -52,6 +56,11 @@ mod minutes {
|
|||
set_test!(can_set_ds3234, set_minutes, new_ds3234, 1,
|
||||
SpiTrans::write(vec![Register::MINUTES + 0x80, 1]));
|
||||
|
||||
set_invalid_test!(cannot_set_invalid_ds3231, set_minutes, new_ds3231, 60);
|
||||
set_invalid_test!(cannot_set_invalid_ds3232, set_minutes, new_ds3232, 60);
|
||||
set_invalid_test!(cannot_set_invalid_ds3234, set_minutes, new_ds3234, 60);
|
||||
}
|
||||
|
||||
mod hours {
|
||||
use super::*;
|
||||
get_test!(can_get_ds3231, get_hours, new_ds3231, Hours::H24(21),
|
||||
|
@ -72,4 +81,8 @@ mod hours {
|
|||
|
||||
set_test!(can_set_ds3234, set_hours, new_ds3234, Hours::H24(21),
|
||||
SpiTrans::write(vec![Register::HOURS + 0x80, 0b0010_0001]));
|
||||
|
||||
set_invalid_test!(cannot_set_invalid_ds3231, set_hours, new_ds3231, Hours::H24(24));
|
||||
set_invalid_test!(cannot_set_invalid_ds3232, set_hours, new_ds3232, Hours::H24(24));
|
||||
set_invalid_test!(cannot_set_invalid_ds3234, set_hours, new_ds3234, Hours::H24(24));
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue