summaryrefslogtreecommitdiff
path: root/tests/get.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/get.rs')
-rw-r--r--tests/get.rs41
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/get.rs b/tests/get.rs
new file mode 100644
index 0000000..4019cd5
--- /dev/null
+++ b/tests/get.rs
@@ -0,0 +1,41 @@
+use get::Get;
+
+macro_rules! testcase {
+ ($test:literal) => {
+ concat!("tests/trybuild/", $test)
+ };
+}
+
+#[derive(Get)]
+pub struct CatStruct<'a, T> {
+ name: &'a str,
+ age: u64,
+ owner: T,
+}
+
+#[derive(Get)]
+pub struct CatTupleStruct<'a, T>(
+ #[get(method = "name")] &'a str,
+ #[get(method = "age")] u64,
+ #[get(method = "owner")] T,
+);
+
+#[test]
+fn cat_struct() {
+ let cat = CatStruct {
+ name: "cat",
+ age: 1,
+ owner: (),
+ };
+ assert_eq!(*cat.name(), "cat");
+ assert_eq!(*cat.age(), 1);
+ assert!(matches!(cat.owner(), ()));
+}
+
+#[test]
+fn cat_tuple_struct() {
+ let cat = CatTupleStruct("cat", 1, ());
+ assert_eq!(*cat.name(), "cat");
+ assert_eq!(*cat.age(), 1);
+ assert!(matches!(cat.owner(), ()));
+}