wip: test cases

This commit is contained in:
Greg Heartsfield 2022-10-15 11:07:39 -05:00
parent 0ae6292c1c
commit 6fea2d2ddf

View File

@ -117,12 +117,13 @@ impl FromStr for ConditionQuery {
type Err = Error; type Err = Error;
fn from_str(value: &str) -> Result<Self, Self::Err> { fn from_str(value: &str) -> Result<Self, Self::Err> {
// split the string with '&' // split the string with '&'
let conds = value.split_terminator('&'); let mut conditions = vec![];
let condstrs = value.split_terminator('&');
// parse each individual condition // parse each individual condition
for c in conds { for c in condstrs {
str_to_condition(c).ok_or(Error::DelegationParseError)?; conditions.push(str_to_condition(c).ok_or(Error::DelegationParseError)?);
} }
Ok(ConditionQuery { conditions: vec![] }) Ok(ConditionQuery { conditions })
} }
} }
@ -139,4 +140,41 @@ mod tests {
assert_eq!(parsed, empty_cq); assert_eq!(parsed, empty_cq);
Ok(()) Ok(())
} }
// parse field 'kind'
#[test]
fn test_kind_field_parse() -> Result<()> {
let field = "kind".parse::<Field>()?;
assert_eq!(field, Field::Kind);
Ok(())
}
// parse field 'created_at'
#[test]
fn test_created_at_field_parse() -> Result<()> {
let field = "created_at".parse::<Field>()?;
assert_eq!(field, Field::CreatedAt);
Ok(())
}
// parse unknown field
#[test]
fn unknown_field_parse() {
let field = "unk".parse::<Field>();
assert!(field.is_err());
}
// parse fields
#[test]
fn parse_kind_field() -> Result<()> {
// given an empty condition query, produce an empty vector
let _kind_cq = ConditionQuery {
conditions: vec![Condition {
field: Field::Kind,
operator: Operator::GreaterThan,
values: vec![],
}],
};
//let parsed = "kind=1".parse::<ConditionQuery>()?;
//assert_eq!(parsed, kind_cq);
Ok(())
}
} }