diff options
Diffstat (limited to 'vendor/derive_builder/tests/builder_name.rs')
-rw-r--r-- | vendor/derive_builder/tests/builder_name.rs | 40 |
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, + } + ); +} |