aboutsummaryrefslogtreecommitdiff
path: root/azalea-block/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'azalea-block/src/lib.rs')
-rw-r--r--azalea-block/src/lib.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/azalea-block/src/lib.rs b/azalea-block/src/lib.rs
index 4f929cd3..ead63bef 100644
--- a/azalea-block/src/lib.rs
+++ b/azalea-block/src/lib.rs
@@ -38,3 +38,26 @@ pub trait Property {
fn try_from_block_state(state: BlockState) -> Option<Self::Value>;
}
+
+#[cfg(test)]
+mod tests {
+ use crate::BlockTrait;
+
+ #[test]
+ pub fn roundtrip_block_state() {
+ let block = crate::blocks::OakTrapdoor {
+ facing: crate::properties::FacingCardinal::East,
+ half: crate::properties::TopBottom::Bottom,
+ open: true,
+ powered: false,
+ waterlogged: false,
+ };
+ let block_state = block.as_block_state();
+ let block_from_state = Box::<dyn BlockTrait>::from(block_state);
+ let block_from_state = block_from_state
+ .downcast_ref::<crate::blocks::OakTrapdoor>()
+ .unwrap()
+ .clone();
+ assert_eq!(block, block_from_state);
+ }
+}