aboutsummaryrefslogtreecommitdiff
path: root/examples/tutorial02/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'examples/tutorial02/main.rs')
-rw-r--r--examples/tutorial02/main.rs37
1 files changed, 37 insertions, 0 deletions
diff --git a/examples/tutorial02/main.rs b/examples/tutorial02/main.rs
index 8f0eebe..bac20e1 100644
--- a/examples/tutorial02/main.rs
+++ b/examples/tutorial02/main.rs
@@ -25,3 +25,40 @@ fn settings() -> Settings<impl Connectable> {
}
tosin::main!(urls(), settings());
+
+#[cfg(test)]
+mod test {
+ use super::*;
+ use diesel::prelude::*;
+
+ #[test]
+ fn test_models() {
+ use polls::models::{Choice, Question, choice, question};
+
+ let settings = settings();
+ let connection = settings.database.connect().unwrap();
+
+ // get the list of all questions
+ let all_questions = question::table.load::<Question>(&connection).unwrap();
+ assert!(all_questions.is_empty());
+
+ // make a new one
+ let mut q = Question::new(
+ "What's new?".to_string(),
+ time::PrimitiveDateTime::now(),
+ );
+ // save it
+ q.save_mut();
+ // it's got an id now!
+ assert!(q.id().is_some());
+ // it's still got all the same fields!
+ assert_eq!(q.question_text(), "What's new?");
+ // we can change them!
+ q.set_question_text("What's up?");
+ q.save_mut();
+
+ // it should be in the list now, too!!
+ let all_questions = question::table.load::<Question>(&connection).unwrap();
+ assert_eq!(all_questions, vec![q]);
+ }
+}