diff --git a/src/main.rs b/src/main.rs
index c7a0327..d1fdbbb 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -53,6 +53,30 @@ fn show_week_period_for_week_number(w: usize, year: i32) {
);
}
+fn get_week_number() -> isize {
+ let client = Client::new();
+
+ let mut res = client
+ .get(WEEKDAY_WEBSITE)
+ .header(Connection::close())
+ .send()
+ .unwrap_or_else(|why| {
+ panic!("Error fetching week number, make sure you have an internet connection");
+ });
+
+ let mut body = String::new();
+ res.read_to_string(&mut body).unwrap();
+
+ let body_index = body.find("
\n").unwrap() + "\n".len();
+ let break_index = body.find("
").unwrap();
+ let week_number = &body[body_index..break_index];
+
+ return match week_number.parse::() {
+ Ok(num) => num,
+ _ => -1,
+ };
+}
+
fn main() {
let year = Local::now().year();
@@ -69,23 +93,15 @@ fn main() {
print_help();
} else {
- let client = Client::new();
-
- let mut res = client
- .get(WEEKDAY_WEBSITE)
- .header(Connection::close())
- .send()
- .unwrap_or_else(|why| {
- panic!("Error fetching week number, make sure you have an internet connection");
- });
-
- let mut body = String::new();
- res.read_to_string(&mut body).unwrap();
-
- let body_index = body.find("\n").unwrap() + "\n".len();
- let break_index = body.find("
").unwrap();
+ println!("{}", get_week_number());
+ }
+}
- let week_number = &body[body_index..break_index];
- println!("{}", week_number);
+#[test]
+fn week_number_should_be_between_1_and_53() {
+ if let 1...53 = get_week_number() {
+ assert!(true, "Week number is between 1 and 53");
+ } else {
+ assert!(false, "Week number is not between 1 and 53");
}
}