Skip to content

Commit 4a195df

Browse files
authored
test: add NotificationResponse regression test (#706)
To prevent parsing errors for that message.
1 parent 40c06e7 commit 4a195df

File tree

3 files changed

+35
-2
lines changed

3 files changed

+35
-2
lines changed

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pgdog/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "pgdog"
3-
version = "0.1.23"
3+
version = "0.1.24"
44
edition = "2021"
55
description = "Modern PostgreSQL proxy, pooler and load balancer."
66
authors = ["PgDog <hi@pgdog.dev>"]

pgdog/src/net/messages/notice_response.rs

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,36 @@ impl Protocol for NoticeResponse {
3535
'N'
3636
}
3737
}
38+
39+
#[cfg(test)]
40+
mod test {
41+
use super::*;
42+
use crate::net::Payload;
43+
44+
#[test]
45+
fn test_notice_response_from_bytes() {
46+
let mut payload = Payload::named('N');
47+
payload.put_u8(b'S');
48+
payload.put_string("NOTICE");
49+
payload.put_u8(b'V');
50+
payload.put_string("NOTICE");
51+
payload.put_u8(b'C');
52+
payload.put_string("00000");
53+
payload.put_u8(b'M');
54+
payload.put_string("test notice message");
55+
payload.put_u8(b'D');
56+
payload.put_string("test detail");
57+
payload.put_u8(b'R');
58+
payload.put_string("testRoutine");
59+
payload.put_u8(0);
60+
61+
let bytes = payload.freeze();
62+
let notice = NoticeResponse::from_bytes(bytes).unwrap();
63+
64+
assert_eq!(notice.message.severity, "NOTICE");
65+
assert_eq!(notice.message.code, "00000");
66+
assert_eq!(notice.message.message, "test notice message");
67+
assert_eq!(notice.message.detail, Some("test detail".into()));
68+
assert_eq!(notice.message.routine, Some("testRoutine".into()));
69+
}
70+
}

0 commit comments

Comments
 (0)