Skip to content

Commit 72e2487

Browse files
authored
[ISSUE #262]Add test case for volo crate util mod (#263)
1 parent a37575e commit 72e2487

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

volo/src/util/mod.rs

+60
Original file line numberDiff line numberDiff line change
@@ -57,3 +57,63 @@ impl<B: ?Sized> From<Arc<B>> for Ref<'static, B> {
5757
Self::Arc(b)
5858
}
5959
}
60+
61+
#[cfg(test)]
62+
mod tests {
63+
use std::{fmt::Display, sync::Arc};
64+
65+
use super::*;
66+
67+
#[derive(Debug, PartialEq, Eq, Copy, Clone)]
68+
struct TestData;
69+
70+
impl Display for TestData {
71+
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
72+
f.write_str("TestData")
73+
}
74+
}
75+
76+
#[test]
77+
fn test_borrowed_ref() {
78+
let data = TestData;
79+
let borrowed_ref: Ref<'_, TestData> = (&data).into();
80+
assert_eq!(*borrowed_ref, data);
81+
}
82+
83+
#[test]
84+
fn test_arc_ref() {
85+
let data = TestData;
86+
let arc_ref: Ref<'static, TestData> = Arc::new(data).into();
87+
assert_eq!(*arc_ref, data);
88+
}
89+
90+
#[test]
91+
fn test_display_trait() {
92+
let data = TestData;
93+
let borrowed_ref: Ref<'_, TestData> = (&data).into();
94+
assert_eq!(format!("{}", borrowed_ref), format!("{}", data));
95+
}
96+
97+
#[test]
98+
fn test_clone_trait() {
99+
let data = TestData;
100+
let borrowed_ref: Ref<'_, TestData> = (&data).into();
101+
let cloned_ref = borrowed_ref.clone();
102+
assert_eq!(cloned_ref, borrowed_ref);
103+
}
104+
105+
#[test]
106+
fn test_deref_trait() {
107+
let data = TestData;
108+
let borrowed_ref: Ref<'_, TestData> = (&data).into();
109+
assert_eq!(*borrowed_ref, data);
110+
}
111+
112+
#[test]
113+
fn test_borrow_trait() {
114+
let data = TestData;
115+
let borrowed_ref: Ref<'_, TestData> = (&data).into();
116+
let borrowed: &TestData = borrowed_ref.borrow();
117+
assert_eq!(borrowed, &data);
118+
}
119+
}

0 commit comments

Comments
 (0)