summaryrefslogtreecommitdiffstats
path: root/vendor/derive_builder/tests/builder_name.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/derive_builder/tests/builder_name.rs')
-rw-r--r--vendor/derive_builder/tests/builder_name.rs40
1 files changed, 40 insertions, 0 deletions
diff --git a/vendor/derive_builder/tests/builder_name.rs b/vendor/derive_builder/tests/builder_name.rs
new file mode 100644
index 000000000..3b2cd5706
--- /dev/null
+++ b/vendor/derive_builder/tests/builder_name.rs
@@ -0,0 +1,40 @@
+#[macro_use]
+extern crate pretty_assertions;
+#[macro_use]
+extern crate derive_builder;
+
+#[derive(Debug, PartialEq, Default, Builder, Clone)]
+#[builder(name = "MyBuilder")]
+struct Lorem {
+ ipsum: &'static str,
+ pub dolor: Option<&'static str>,
+ pub sit: i32,
+ amet: bool,
+}
+
+#[test]
+fn error_if_uninitialized() {
+ let error = MyBuilder::default().build().unwrap_err();
+ assert_eq!(&error.to_string(), "`ipsum` must be initialized");
+}
+
+#[test]
+fn builder_test() {
+ let x: Lorem = MyBuilder::default()
+ .ipsum("lorem")
+ .dolor(Some("dolor"))
+ .sit(42)
+ .amet(true)
+ .build()
+ .unwrap();
+
+ assert_eq!(
+ x,
+ Lorem {
+ ipsum: "lorem",
+ dolor: Some("dolor"),
+ sit: 42,
+ amet: true,
+ }
+ );
+}