From 95af86dd3587df2599444cfb50cdda8e948b9ad4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Pol=C3=A1=C4=8Dek?= Date: Sat, 30 Mar 2024 21:39:49 +0100 Subject: [PATCH] Add a test for a valid punch --- src/message_handler.rs | 27 +++++++++++++++++++++++++-- src/punch.rs | 2 +- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/message_handler.rs b/src/message_handler.rs index 91dbb47..0728d7a 100644 --- a/src/message_handler.rs +++ b/src/message_handler.rs @@ -240,14 +240,18 @@ impl MessageHandler { mod test_punch { use std::collections::HashMap; + use chrono::DateTime; use prost::Message; - use crate::protobufs::{Punch, Punches}; + use crate::{ + protobufs::{Punch, Punches}, + punch::SiPunch, + }; use super::MessageHandler; #[test] - fn test_punches() { + fn test_wrong_punch() { let punches = Punches { punches: vec![Punch { raw: b"\x12\x43".to_vec(), @@ -260,4 +264,23 @@ mod test_punch { let punches = handler.punches(&message[..], "").unwrap(); assert_eq!(punches.len(), 0); } + + #[test] + fn test_punch() { + let time = DateTime::parse_from_rfc3339("2023-11-23T10:00:03.793+00:00").unwrap(); + let punch = SiPunch::punch_to_bytes(47, time, 1715004, 2); + let punches = Punches { + punches: vec![Punch { + raw: punch.to_vec(), + }], + sending_timestamp: None, + }; + let message = punches.encode_to_vec(); + + let mut handler = MessageHandler::new(HashMap::new(), None); + let punches = handler.punches(&message[..], "").unwrap(); + assert_eq!(punches.len(), 1); + assert_eq!(punches[0].code, 47); + assert_eq!(punches[0].card, 1715004); + } } diff --git a/src/punch.rs b/src/punch.rs index 51b0ab4..9648317 100644 --- a/src/punch.rs +++ b/src/punch.rs @@ -8,7 +8,7 @@ use pyo3::prelude::*; #[pyclass] pub struct SiPunch { #[pyo3(get)] - card: u32, + pub card: u32, #[pyo3(get)] pub code: u16, #[pyo3(get)]