rust/bt-gatt: Fix test

Fix test by properly converting single CharacteristicProperty to
CharacteristicProperties struct.

Change-Id: Id5363ddda379b7e8e8fef74951be4a7284c91925
Reviewed-on: https://bluetooth-review.git.corp.google.com/c/bluetooth/+/1960
Reviewed-by: Marie Janssen <jamuraa@google.com>
diff --git a/rust/bt-gatt/src/types.rs b/rust/bt-gatt/src/types.rs
index 0e7ada4..3e3dc06 100644
--- a/rust/bt-gatt/src/types.rs
+++ b/rust/bt-gatt/src/types.rs
@@ -218,9 +218,38 @@
     WritableAuxiliaries = 0x200,
 }
 
+impl std::ops::BitOr for CharacteristicProperty {
+    type Output = CharacteristicProperties;
+
+    fn bitor(self, rhs: Self) -> Self::Output {
+        CharacteristicProperties(vec![self, rhs])
+    }
+}
+
 #[derive(Default, Debug, Clone)]
 pub struct CharacteristicProperties(pub Vec<CharacteristicProperty>);
 
+impl From<CharacteristicProperty> for CharacteristicProperties {
+    fn from(value: CharacteristicProperty) -> Self {
+        Self(vec![value])
+    }
+}
+
+impl FromIterator<CharacteristicProperty> for CharacteristicProperties {
+    fn from_iter<T: IntoIterator<Item = CharacteristicProperty>>(iter: T) -> Self {
+        Self(iter.into_iter().collect())
+    }
+}
+
+impl std::ops::BitOr<CharacteristicProperty> for CharacteristicProperties {
+    type Output = Self;
+
+    fn bitor(mut self, rhs: CharacteristicProperty) -> Self::Output {
+        self.0.push(rhs);
+        self
+    }
+}
+
 #[derive(Debug, Clone, Copy, Default)]
 pub struct SecurityLevels {
     /// Encryption is required / provided