Skip to content

Commit fd3f3fe

Browse files
committed
Move types tests to their own file
1 parent 6c0ec6a commit fd3f3fe

File tree

2 files changed

+159
-160
lines changed

2 files changed

+159
-160
lines changed

postgres-protocol/src/types.rs renamed to postgres-protocol/src/types/mod.rs

Lines changed: 3 additions & 160 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ use std::str;
77

88
use crate::{write_nullable, FromUsize, IsNull, Oid};
99

10+
#[cfg(test)]
11+
mod test;
12+
1013
const RANGE_UPPER_UNBOUNDED: u8 = 0b0001_0000;
1114
const RANGE_LOWER_UNBOUNDED: u8 = 0b0000_1000;
1215
const RANGE_UPPER_INCLUSIVE: u8 = 0b0000_0100;
@@ -953,163 +956,3 @@ impl<'a> FallibleIterator for PathPoints<'a> {
953956
(len, Some(len))
954957
}
955958
}
956-
957-
#[cfg(test)]
958-
mod test {
959-
use fallible_iterator::FallibleIterator;
960-
use std::collections::HashMap;
961-
962-
use super::*;
963-
use crate::IsNull;
964-
965-
#[test]
966-
fn bool() {
967-
let mut buf = vec![];
968-
bool_to_sql(true, &mut buf);
969-
assert_eq!(bool_from_sql(&buf).unwrap(), true);
970-
971-
let mut buf = vec![];
972-
bool_to_sql(false, &mut buf);
973-
assert_eq!(bool_from_sql(&buf).unwrap(), false);
974-
}
975-
976-
#[test]
977-
fn int2() {
978-
let mut buf = vec![];
979-
int2_to_sql(0x0102, &mut buf);
980-
assert_eq!(int2_from_sql(&buf).unwrap(), 0x0102);
981-
}
982-
983-
#[test]
984-
fn int4() {
985-
let mut buf = vec![];
986-
int4_to_sql(0x0102_0304, &mut buf);
987-
assert_eq!(int4_from_sql(&buf).unwrap(), 0x0102_0304);
988-
}
989-
990-
#[test]
991-
fn int8() {
992-
let mut buf = vec![];
993-
int8_to_sql(0x0102_0304_0506_0708, &mut buf);
994-
assert_eq!(int8_from_sql(&buf).unwrap(), 0x0102_0304_0506_0708);
995-
}
996-
997-
#[test]
998-
#[allow(clippy::float_cmp)]
999-
fn float4() {
1000-
let mut buf = vec![];
1001-
float4_to_sql(10343.95, &mut buf);
1002-
assert_eq!(float4_from_sql(&buf).unwrap(), 10343.95);
1003-
}
1004-
1005-
#[test]
1006-
#[allow(clippy::float_cmp)]
1007-
fn float8() {
1008-
let mut buf = vec![];
1009-
float8_to_sql(10343.95, &mut buf);
1010-
assert_eq!(float8_from_sql(&buf).unwrap(), 10343.95);
1011-
}
1012-
1013-
#[test]
1014-
fn hstore() {
1015-
let mut map = HashMap::new();
1016-
map.insert("hello", Some("world"));
1017-
map.insert("hola", None);
1018-
1019-
let mut buf = vec![];
1020-
hstore_to_sql(map.iter().map(|(&k, &v)| (k, v)), &mut buf).unwrap();
1021-
assert_eq!(
1022-
hstore_from_sql(&buf)
1023-
.unwrap()
1024-
.collect::<HashMap<_, _>>()
1025-
.unwrap(),
1026-
map
1027-
);
1028-
}
1029-
1030-
#[test]
1031-
fn varbit() {
1032-
let len = 12;
1033-
let bits = [0b0010_1011, 0b0000_1111];
1034-
1035-
let mut buf = vec![];
1036-
varbit_to_sql(len, bits.iter().cloned(), &mut buf).unwrap();
1037-
let out = varbit_from_sql(&buf).unwrap();
1038-
assert_eq!(out.len(), len);
1039-
assert_eq!(out.bytes(), bits);
1040-
}
1041-
1042-
#[test]
1043-
fn array() {
1044-
let dimensions = [
1045-
ArrayDimension {
1046-
len: 1,
1047-
lower_bound: 10,
1048-
},
1049-
ArrayDimension {
1050-
len: 2,
1051-
lower_bound: 0,
1052-
},
1053-
];
1054-
let values = [None, Some(&b"hello"[..])];
1055-
1056-
let mut buf = vec![];
1057-
array_to_sql(
1058-
dimensions.iter().cloned(),
1059-
10,
1060-
values.iter().cloned(),
1061-
|v, buf| match v {
1062-
Some(v) => {
1063-
buf.extend_from_slice(v);
1064-
Ok(IsNull::No)
1065-
}
1066-
None => Ok(IsNull::Yes),
1067-
},
1068-
&mut buf,
1069-
)
1070-
.unwrap();
1071-
1072-
let array = array_from_sql(&buf).unwrap();
1073-
assert_eq!(array.has_nulls(), true);
1074-
assert_eq!(array.element_type(), 10);
1075-
assert_eq!(array.dimensions().collect::<Vec<_>>().unwrap(), dimensions);
1076-
assert_eq!(array.values().collect::<Vec<_>>().unwrap(), values);
1077-
}
1078-
1079-
#[test]
1080-
fn non_null_array() {
1081-
let dimensions = [
1082-
ArrayDimension {
1083-
len: 1,
1084-
lower_bound: 10,
1085-
},
1086-
ArrayDimension {
1087-
len: 2,
1088-
lower_bound: 0,
1089-
},
1090-
];
1091-
let values = [Some(&b"hola"[..]), Some(&b"hello"[..])];
1092-
1093-
let mut buf = vec![];
1094-
array_to_sql(
1095-
dimensions.iter().cloned(),
1096-
10,
1097-
values.iter().cloned(),
1098-
|v, buf| match v {
1099-
Some(v) => {
1100-
buf.extend_from_slice(v);
1101-
Ok(IsNull::No)
1102-
}
1103-
None => Ok(IsNull::Yes),
1104-
},
1105-
&mut buf,
1106-
)
1107-
.unwrap();
1108-
1109-
let array = array_from_sql(&buf).unwrap();
1110-
assert_eq!(array.has_nulls(), false);
1111-
assert_eq!(array.element_type(), 10);
1112-
assert_eq!(array.dimensions().collect::<Vec<_>>().unwrap(), dimensions);
1113-
assert_eq!(array.values().collect::<Vec<_>>().unwrap(), values);
1114-
}
1115-
}

postgres-protocol/src/types/test.rs

Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
use fallible_iterator::FallibleIterator;
2+
use std::collections::HashMap;
3+
4+
use super::*;
5+
use crate::IsNull;
6+
7+
#[test]
8+
fn bool() {
9+
let mut buf = vec![];
10+
bool_to_sql(true, &mut buf);
11+
assert_eq!(bool_from_sql(&buf).unwrap(), true);
12+
13+
let mut buf = vec![];
14+
bool_to_sql(false, &mut buf);
15+
assert_eq!(bool_from_sql(&buf).unwrap(), false);
16+
}
17+
18+
#[test]
19+
fn int2() {
20+
let mut buf = vec![];
21+
int2_to_sql(0x0102, &mut buf);
22+
assert_eq!(int2_from_sql(&buf).unwrap(), 0x0102);
23+
}
24+
25+
#[test]
26+
fn int4() {
27+
let mut buf = vec![];
28+
int4_to_sql(0x0102_0304, &mut buf);
29+
assert_eq!(int4_from_sql(&buf).unwrap(), 0x0102_0304);
30+
}
31+
32+
#[test]
33+
fn int8() {
34+
let mut buf = vec![];
35+
int8_to_sql(0x0102_0304_0506_0708, &mut buf);
36+
assert_eq!(int8_from_sql(&buf).unwrap(), 0x0102_0304_0506_0708);
37+
}
38+
39+
#[test]
40+
#[allow(clippy::float_cmp)]
41+
fn float4() {
42+
let mut buf = vec![];
43+
float4_to_sql(10343.95, &mut buf);
44+
assert_eq!(float4_from_sql(&buf).unwrap(), 10343.95);
45+
}
46+
47+
#[test]
48+
#[allow(clippy::float_cmp)]
49+
fn float8() {
50+
let mut buf = vec![];
51+
float8_to_sql(10343.95, &mut buf);
52+
assert_eq!(float8_from_sql(&buf).unwrap(), 10343.95);
53+
}
54+
55+
#[test]
56+
fn hstore() {
57+
let mut map = HashMap::new();
58+
map.insert("hello", Some("world"));
59+
map.insert("hola", None);
60+
61+
let mut buf = vec![];
62+
hstore_to_sql(map.iter().map(|(&k, &v)| (k, v)), &mut buf).unwrap();
63+
assert_eq!(
64+
hstore_from_sql(&buf)
65+
.unwrap()
66+
.collect::<HashMap<_, _>>()
67+
.unwrap(),
68+
map
69+
);
70+
}
71+
72+
#[test]
73+
fn varbit() {
74+
let len = 12;
75+
let bits = [0b0010_1011, 0b0000_1111];
76+
77+
let mut buf = vec![];
78+
varbit_to_sql(len, bits.iter().cloned(), &mut buf).unwrap();
79+
let out = varbit_from_sql(&buf).unwrap();
80+
assert_eq!(out.len(), len);
81+
assert_eq!(out.bytes(), bits);
82+
}
83+
84+
#[test]
85+
fn array() {
86+
let dimensions = [
87+
ArrayDimension {
88+
len: 1,
89+
lower_bound: 10,
90+
},
91+
ArrayDimension {
92+
len: 2,
93+
lower_bound: 0,
94+
},
95+
];
96+
let values = [None, Some(&b"hello"[..])];
97+
98+
let mut buf = vec![];
99+
array_to_sql(
100+
dimensions.iter().cloned(),
101+
10,
102+
values.iter().cloned(),
103+
|v, buf| match v {
104+
Some(v) => {
105+
buf.extend_from_slice(v);
106+
Ok(IsNull::No)
107+
}
108+
None => Ok(IsNull::Yes),
109+
},
110+
&mut buf,
111+
)
112+
.unwrap();
113+
114+
let array = array_from_sql(&buf).unwrap();
115+
assert_eq!(array.has_nulls(), true);
116+
assert_eq!(array.element_type(), 10);
117+
assert_eq!(array.dimensions().collect::<Vec<_>>().unwrap(), dimensions);
118+
assert_eq!(array.values().collect::<Vec<_>>().unwrap(), values);
119+
}
120+
121+
#[test]
122+
fn non_null_array() {
123+
let dimensions = [
124+
ArrayDimension {
125+
len: 1,
126+
lower_bound: 10,
127+
},
128+
ArrayDimension {
129+
len: 2,
130+
lower_bound: 0,
131+
},
132+
];
133+
let values = [Some(&b"hola"[..]), Some(&b"hello"[..])];
134+
135+
let mut buf = vec![];
136+
array_to_sql(
137+
dimensions.iter().cloned(),
138+
10,
139+
values.iter().cloned(),
140+
|v, buf| match v {
141+
Some(v) => {
142+
buf.extend_from_slice(v);
143+
Ok(IsNull::No)
144+
}
145+
None => Ok(IsNull::Yes),
146+
},
147+
&mut buf,
148+
)
149+
.unwrap();
150+
151+
let array = array_from_sql(&buf).unwrap();
152+
assert_eq!(array.has_nulls(), false);
153+
assert_eq!(array.element_type(), 10);
154+
assert_eq!(array.dimensions().collect::<Vec<_>>().unwrap(), dimensions);
155+
assert_eq!(array.values().collect::<Vec<_>>().unwrap(), values);
156+
}

0 commit comments

Comments
 (0)