[#13] added some more unit tests, hated life for a bit
parent
2e73d88ae9
commit
e4b8be3ba3
|
@ -60,6 +60,7 @@ impl Serialize for BasicDate {
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
|
|
||||||
|
/// Tests catching a string with an invalid date
|
||||||
#[test]
|
#[test]
|
||||||
fn test_invalid_date() {
|
fn test_invalid_date() {
|
||||||
let val = "2012-13-12";
|
let val = "2012-13-12";
|
||||||
|
|
|
@ -28,3 +28,5 @@ impl Serialize for PickupTime {
|
||||||
s.end()
|
s.end()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// I'd put tests here, but there's barely anything to do
|
||||||
|
|
|
@ -6,8 +6,19 @@ use std::convert::TryFrom;
|
||||||
|
|
||||||
/// Represents a street
|
/// Represents a street
|
||||||
pub struct Street {
|
pub struct Street {
|
||||||
pub name: String,
|
name: String,
|
||||||
pub city: String,
|
city: String,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Street {
|
||||||
|
// This constructor just makes my life a bit easier during testing
|
||||||
|
#[cfg(test)]
|
||||||
|
fn new(name: String, city: String) -> Street {
|
||||||
|
Street {
|
||||||
|
name: name,
|
||||||
|
city: city,
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl From<&Street> for String {
|
impl From<&Street> for String {
|
||||||
|
@ -50,6 +61,7 @@ impl<'v> FromFormValue<'v> for Street {
|
||||||
// This regex is pretty loose tbh, but not sure how I can make it more
|
// This regex is pretty loose tbh, but not sure how I can make it more
|
||||||
// strict right now
|
// strict right now
|
||||||
let re = Regex::new(r"^(.+) \((.+)\)$").unwrap();
|
let re = Regex::new(r"^(.+) \((.+)\)$").unwrap();
|
||||||
|
|
||||||
match re.captures(&form_value.url_decode_lossy()) {
|
match re.captures(&form_value.url_decode_lossy()) {
|
||||||
None => Err(form_value),
|
None => Err(form_value),
|
||||||
Some(caps) => Ok(Street {
|
Some(caps) => Ok(Street {
|
||||||
|
@ -59,3 +71,15 @@ impl<'v> FromFormValue<'v> for Street {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod tests {
|
||||||
|
use super::*;
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_to_string() {
|
||||||
|
let street = Street::new(String::from("testname"), String::from("city"));
|
||||||
|
|
||||||
|
assert_eq!(String::from("testname (city)"), String::from(&street));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
/// In here, any non-unit tests are placed.
|
||||||
use rocket::http::Status;
|
use rocket::http::Status;
|
||||||
use rocket::local::Client;
|
use rocket::local::Client;
|
||||||
|
|
||||||
|
@ -12,9 +13,11 @@ fn test_404_response() {
|
||||||
let response = client.get("/").dispatch();
|
let response = client.get("/").dispatch();
|
||||||
|
|
||||||
assert_eq!(response.status(), Status::NotFound);
|
assert_eq!(response.status(), Status::NotFound);
|
||||||
|
// TODO add text check as well
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Test 404 on invalid parameters
|
/// Test 404 on invalid parameters
|
||||||
|
// TODO make this check a 400 instead
|
||||||
#[test]
|
#[test]
|
||||||
fn test_invalid_parameters() {
|
fn test_invalid_parameters() {
|
||||||
let client = Client::new(rocket()).expect("valid rocket instance");
|
let client = Client::new(rocket()).expect("valid rocket instance");
|
||||||
|
|
Loading…
Reference in New Issue