aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTeddy Wing2018-04-13 18:32:53 +0200
committerTeddy Wing2018-04-13 18:32:53 +0200
commitf179d813e1656c2bca07bbb8c86a3a53278044c8 (patch)
tree25dc79bd6a653cecfad6d65d112dfb3a5c9d8a0d /src
parentf3a1142975ba108f4e71c64e788e9f5fa4123bdc (diff)
downloadmeetup-find-events-rss-f179d813e1656c2bca07bbb8c86a3a53278044c8.tar.bz2
meetup(generate): Improve test and take a reference argument
* Take a `Vec` reference instead of an object. This is the result of messing around with calling the function in the test. * Update the test to actually make assertions on the result of the function.
Diffstat (limited to 'src')
-rw-r--r--src/meetup_rss.rs40
1 files changed, 23 insertions, 17 deletions
diff --git a/src/meetup_rss.rs b/src/meetup_rss.rs
index 6879082..7e2989a 100644
--- a/src/meetup_rss.rs
+++ b/src/meetup_rss.rs
@@ -2,12 +2,12 @@ use rss::{Channel, ChannelBuilder, Item};
use meetup::event::Event;
-pub fn generate(events: Vec<Event>) -> Result<Channel, String> {
+pub fn generate(events: &Vec<Event>) -> Result<Channel, String> {
let items: Vec<Item> = events.into_iter().map(|event| {
let mut item = Item::default();
- item.set_title(event.name);
- item.set_link(event.link);
- item.set_description(event.description);
+ item.set_title(event.name.clone());
+ item.set_link(event.link.clone());
+ item.set_description(event.description.clone());
item
}).collect();
@@ -27,18 +27,24 @@ mod tests {
use super::*;
#[test]
- fn test_generate_builds_a_channel() {
- let x = generate(
- vec![
- Event {
- name: "Summer Sun Celebration".to_owned(),
- description: "Description".to_owned(),
- link: "http://example.com".to_owned(),
- local_date: "2018-04-13".to_owned(),
- local_time: "18:30".to_owned(),
- }
- ]
- );
- println!("{:?}", x);
+ fn test_generate_builds_a_channel_of_events() {
+ let events = vec![
+ Event {
+ name: "Summer Sun Celebration".to_owned(),
+ description: "Description".to_owned(),
+ link: "http://example.com".to_owned(),
+ local_date: "2018-04-13".to_owned(),
+ local_time: "18:30".to_owned(),
+ }
+ ];
+ let event = &events[0];
+
+ let channel = generate(&events).unwrap();
+
+ let item = channel.items().first().unwrap();
+
+ assert_eq!(event.name, item.title().unwrap());
+ assert_eq!(event.link, item.link().unwrap());
+ assert_eq!(event.description, item.description().unwrap());
}
}