1
0
Fork 0
mirror of https://github.com/sile/hls_m3u8.git synced 2024-06-18 12:50:31 +00:00

more tests #25

This commit is contained in:
Luro02 2019-09-25 18:49:25 +02:00
parent 565fd114b0
commit 35592584ee
4 changed files with 182 additions and 68 deletions

View file

@ -122,6 +122,8 @@ mod test {
let mut iterator = pairs.iter();
assert!(iterator.any(|(k, v)| k == "ABC" && v == "12.3"));
assert!("FOO=BAR,VAL".parse::<AttributePairs>().is_err());
}
#[test]
@ -136,4 +138,18 @@ mod test {
let mut iterator = attrs.iter();
assert!(iterator.any(|(k, v)| k == "key_02" && v == "value_02"));
}
#[test]
fn test_into_iter() {
let mut map = HashMap::new();
map.insert("k".to_string(), "v".to_string());
let mut attrs = AttributePairs::new();
attrs.insert("k".to_string(), "v".to_string());
assert_eq!(
attrs.into_iter().collect::<Vec<_>>(),
map.into_iter().collect::<Vec<_>>()
);
}
}

View file

@ -151,5 +151,7 @@ mod tests {
start: None,
};
assert_eq!(byte_range, "99999".parse::<ByteRange>().unwrap());
assert!("".parse::<ByteRange>().is_err());
}
}

View file

@ -91,74 +91,168 @@ impl FromStr for InStreamId {
fn from_str(input: &str) -> Result<Self, Self::Err> {
Ok(match input {
"CC1" => InStreamId::Cc1,
"CC2" => InStreamId::Cc2,
"CC3" => InStreamId::Cc3,
"CC4" => InStreamId::Cc4,
"SERVICE1" => InStreamId::Service1,
"SERVICE2" => InStreamId::Service2,
"SERVICE3" => InStreamId::Service3,
"SERVICE4" => InStreamId::Service4,
"SERVICE5" => InStreamId::Service5,
"SERVICE6" => InStreamId::Service6,
"SERVICE7" => InStreamId::Service7,
"SERVICE8" => InStreamId::Service8,
"SERVICE9" => InStreamId::Service9,
"SERVICE10" => InStreamId::Service10,
"SERVICE11" => InStreamId::Service11,
"SERVICE12" => InStreamId::Service12,
"SERVICE13" => InStreamId::Service13,
"SERVICE14" => InStreamId::Service14,
"SERVICE15" => InStreamId::Service15,
"SERVICE16" => InStreamId::Service16,
"SERVICE17" => InStreamId::Service17,
"SERVICE18" => InStreamId::Service18,
"SERVICE19" => InStreamId::Service19,
"SERVICE20" => InStreamId::Service20,
"SERVICE21" => InStreamId::Service21,
"SERVICE22" => InStreamId::Service22,
"SERVICE23" => InStreamId::Service23,
"SERVICE24" => InStreamId::Service24,
"SERVICE25" => InStreamId::Service25,
"SERVICE26" => InStreamId::Service26,
"SERVICE27" => InStreamId::Service27,
"SERVICE28" => InStreamId::Service28,
"SERVICE29" => InStreamId::Service29,
"SERVICE30" => InStreamId::Service30,
"SERVICE31" => InStreamId::Service31,
"SERVICE32" => InStreamId::Service32,
"SERVICE33" => InStreamId::Service33,
"SERVICE34" => InStreamId::Service34,
"SERVICE35" => InStreamId::Service35,
"SERVICE36" => InStreamId::Service36,
"SERVICE37" => InStreamId::Service37,
"SERVICE38" => InStreamId::Service38,
"SERVICE39" => InStreamId::Service39,
"SERVICE40" => InStreamId::Service40,
"SERVICE41" => InStreamId::Service41,
"SERVICE42" => InStreamId::Service42,
"SERVICE43" => InStreamId::Service43,
"SERVICE44" => InStreamId::Service44,
"SERVICE45" => InStreamId::Service45,
"SERVICE46" => InStreamId::Service46,
"SERVICE47" => InStreamId::Service47,
"SERVICE48" => InStreamId::Service48,
"SERVICE49" => InStreamId::Service49,
"SERVICE50" => InStreamId::Service50,
"SERVICE51" => InStreamId::Service51,
"SERVICE52" => InStreamId::Service52,
"SERVICE53" => InStreamId::Service53,
"SERVICE54" => InStreamId::Service54,
"SERVICE55" => InStreamId::Service55,
"SERVICE56" => InStreamId::Service56,
"SERVICE57" => InStreamId::Service57,
"SERVICE58" => InStreamId::Service58,
"SERVICE59" => InStreamId::Service59,
"SERVICE60" => InStreamId::Service60,
"SERVICE61" => InStreamId::Service61,
"SERVICE62" => InStreamId::Service62,
"SERVICE63" => InStreamId::Service63,
"CC1" => Self::Cc1,
"CC2" => Self::Cc2,
"CC3" => Self::Cc3,
"CC4" => Self::Cc4,
"SERVICE1" => Self::Service1,
"SERVICE2" => Self::Service2,
"SERVICE3" => Self::Service3,
"SERVICE4" => Self::Service4,
"SERVICE5" => Self::Service5,
"SERVICE6" => Self::Service6,
"SERVICE7" => Self::Service7,
"SERVICE8" => Self::Service8,
"SERVICE9" => Self::Service9,
"SERVICE10" => Self::Service10,
"SERVICE11" => Self::Service11,
"SERVICE12" => Self::Service12,
"SERVICE13" => Self::Service13,
"SERVICE14" => Self::Service14,
"SERVICE15" => Self::Service15,
"SERVICE16" => Self::Service16,
"SERVICE17" => Self::Service17,
"SERVICE18" => Self::Service18,
"SERVICE19" => Self::Service19,
"SERVICE20" => Self::Service20,
"SERVICE21" => Self::Service21,
"SERVICE22" => Self::Service22,
"SERVICE23" => Self::Service23,
"SERVICE24" => Self::Service24,
"SERVICE25" => Self::Service25,
"SERVICE26" => Self::Service26,
"SERVICE27" => Self::Service27,
"SERVICE28" => Self::Service28,
"SERVICE29" => Self::Service29,
"SERVICE30" => Self::Service30,
"SERVICE31" => Self::Service31,
"SERVICE32" => Self::Service32,
"SERVICE33" => Self::Service33,
"SERVICE34" => Self::Service34,
"SERVICE35" => Self::Service35,
"SERVICE36" => Self::Service36,
"SERVICE37" => Self::Service37,
"SERVICE38" => Self::Service38,
"SERVICE39" => Self::Service39,
"SERVICE40" => Self::Service40,
"SERVICE41" => Self::Service41,
"SERVICE42" => Self::Service42,
"SERVICE43" => Self::Service43,
"SERVICE44" => Self::Service44,
"SERVICE45" => Self::Service45,
"SERVICE46" => Self::Service46,
"SERVICE47" => Self::Service47,
"SERVICE48" => Self::Service48,
"SERVICE49" => Self::Service49,
"SERVICE50" => Self::Service50,
"SERVICE51" => Self::Service51,
"SERVICE52" => Self::Service52,
"SERVICE53" => Self::Service53,
"SERVICE54" => Self::Service54,
"SERVICE55" => Self::Service55,
"SERVICE56" => Self::Service56,
"SERVICE57" => Self::Service57,
"SERVICE58" => Self::Service58,
"SERVICE59" => Self::Service59,
"SERVICE60" => Self::Service60,
"SERVICE61" => Self::Service61,
"SERVICE62" => Self::Service62,
"SERVICE63" => Self::Service63,
_ => return Err(Error::custom(format!("Unknown instream id: {:?}", input))),
})
}
}
#[cfg(test)]
mod tests {
use super::*;
macro_rules! gen_tests {
( $($string:expr => $enum:expr),* ) => {
#[test]
fn test_display() {
$(
assert_eq!($enum.to_string(), $string.to_string());
)*
}
#[test]
fn test_parser() {
$(
assert_eq!($enum, $string.parse::<InStreamId>().unwrap());
)*
assert!("invalid_input".parse::<InStreamId>().is_err());
}
};
}
gen_tests![
"CC1" => InStreamId::Cc1,
"CC2" => InStreamId::Cc2,
"CC3" => InStreamId::Cc3,
"CC4" => InStreamId::Cc4,
"SERVICE1" => InStreamId::Service1,
"SERVICE2" => InStreamId::Service2,
"SERVICE3" => InStreamId::Service3,
"SERVICE4" => InStreamId::Service4,
"SERVICE5" => InStreamId::Service5,
"SERVICE6" => InStreamId::Service6,
"SERVICE7" => InStreamId::Service7,
"SERVICE8" => InStreamId::Service8,
"SERVICE9" => InStreamId::Service9,
"SERVICE10" => InStreamId::Service10,
"SERVICE11" => InStreamId::Service11,
"SERVICE12" => InStreamId::Service12,
"SERVICE13" => InStreamId::Service13,
"SERVICE14" => InStreamId::Service14,
"SERVICE15" => InStreamId::Service15,
"SERVICE16" => InStreamId::Service16,
"SERVICE17" => InStreamId::Service17,
"SERVICE18" => InStreamId::Service18,
"SERVICE19" => InStreamId::Service19,
"SERVICE20" => InStreamId::Service20,
"SERVICE21" => InStreamId::Service21,
"SERVICE22" => InStreamId::Service22,
"SERVICE23" => InStreamId::Service23,
"SERVICE24" => InStreamId::Service24,
"SERVICE25" => InStreamId::Service25,
"SERVICE26" => InStreamId::Service26,
"SERVICE27" => InStreamId::Service27,
"SERVICE28" => InStreamId::Service28,
"SERVICE29" => InStreamId::Service29,
"SERVICE30" => InStreamId::Service30,
"SERVICE31" => InStreamId::Service31,
"SERVICE32" => InStreamId::Service32,
"SERVICE33" => InStreamId::Service33,
"SERVICE34" => InStreamId::Service34,
"SERVICE35" => InStreamId::Service35,
"SERVICE36" => InStreamId::Service36,
"SERVICE37" => InStreamId::Service37,
"SERVICE38" => InStreamId::Service38,
"SERVICE39" => InStreamId::Service39,
"SERVICE40" => InStreamId::Service40,
"SERVICE41" => InStreamId::Service41,
"SERVICE42" => InStreamId::Service42,
"SERVICE43" => InStreamId::Service43,
"SERVICE44" => InStreamId::Service44,
"SERVICE45" => InStreamId::Service45,
"SERVICE46" => InStreamId::Service46,
"SERVICE47" => InStreamId::Service47,
"SERVICE48" => InStreamId::Service48,
"SERVICE49" => InStreamId::Service49,
"SERVICE50" => InStreamId::Service50,
"SERVICE51" => InStreamId::Service51,
"SERVICE52" => InStreamId::Service52,
"SERVICE53" => InStreamId::Service53,
"SERVICE54" => InStreamId::Service54,
"SERVICE55" => InStreamId::Service55,
"SERVICE56" => InStreamId::Service56,
"SERVICE57" => InStreamId::Service57,
"SERVICE58" => InStreamId::Service58,
"SERVICE59" => InStreamId::Service59,
"SERVICE60" => InStreamId::Service60,
"SERVICE61" => InStreamId::Service61,
"SERVICE62" => InStreamId::Service62,
"SERVICE63" => InStreamId::Service63
];
}

View file

@ -61,7 +61,7 @@ mod tests {
fn test_parse_yes_or_no() {
assert!(parse_yes_or_no("YES").unwrap());
assert!(!parse_yes_or_no("NO").unwrap());
// TODO: test for error
assert!(parse_yes_or_no("garbage").is_err());
}
#[test]
@ -99,5 +99,7 @@ mod tests {
let input = tag(input, "A").unwrap();
assert_eq!(input, "SampleString");
assert!(tag(input, "B").is_err());
}
}