#[cfg(test)]
#[allow(clippy::bool_assert_comparison)]
mod tests {
use crate::duration::Duration;
use crate::policies::resource_limits::LENGTH_UNLIMITED;
use crate::policies::{
DeadlineQosPolicy, DestinationOrderKind, DestinationOrderQosPolicy, DurabilityKind,
DurabilityQosPolicy, DurabilityServiceQosPolicy, EntityFactoryQosPolicy,
GroupDataQosPolicy, HistoryKind, HistoryQosPolicy, LatencyBudgetQosPolicy,
LifespanQosPolicy, LivelinessKind, LivelinessQosPolicy, OwnershipKind, OwnershipQosPolicy,
OwnershipStrengthQosPolicy, PartitionQosPolicy, PresentationAccessScope,
PresentationQosPolicy, ReaderDataLifecycleQosPolicy, ReliabilityKind, ReliabilityQosPolicy,
ResourceLimitsQosPolicy, TimeBasedFilterQosPolicy, TopicDataQosPolicy,
TransportPriorityQosPolicy, UserDataQosPolicy, WriterDataLifecycleQosPolicy,
};
#[test]
fn user_data_default_is_empty() {
assert!(UserDataQosPolicy::default().value.is_empty());
}
#[test]
fn topic_data_default_is_empty() {
assert!(TopicDataQosPolicy::default().value.is_empty());
}
#[test]
fn group_data_default_is_empty() {
assert!(GroupDataQosPolicy::default().value.is_empty());
}
#[test]
fn durability_default_volatile() {
assert_eq!(
DurabilityQosPolicy::default().kind,
DurabilityKind::Volatile
);
}
#[test]
fn durability_service_defaults_match_spec() {
let d = DurabilityServiceQosPolicy::default();
assert_eq!(d.service_cleanup_delay, Duration::ZERO);
assert_eq!(d.history_kind, HistoryKind::KeepLast);
assert_eq!(d.history_depth, 1);
assert_eq!(d.max_samples, LENGTH_UNLIMITED);
assert_eq!(d.max_instances, LENGTH_UNLIMITED);
assert_eq!(d.max_samples_per_instance, LENGTH_UNLIMITED);
}
#[test]
fn presentation_default_instance_no_flags() {
let d = PresentationQosPolicy::default();
assert_eq!(d.access_scope, PresentationAccessScope::Instance);
assert_eq!(d.coherent_access, false);
assert_eq!(d.ordered_access, false);
}
#[test]
fn deadline_default_infinite() {
assert!(DeadlineQosPolicy::default().period.is_infinite());
}
#[test]
fn latency_budget_default_zero() {
assert_eq!(LatencyBudgetQosPolicy::default().duration, Duration::ZERO);
}
#[test]
fn liveliness_default_automatic_infinite() {
let d = LivelinessQosPolicy::default();
assert_eq!(d.kind, LivelinessKind::Automatic);
assert!(d.lease_duration.is_infinite());
}
#[test]
fn time_based_filter_default_zero() {
assert_eq!(
TimeBasedFilterQosPolicy::default().minimum_separation,
Duration::ZERO
);
}
#[test]
fn partition_default_empty() {
assert!(PartitionQosPolicy::default().names.is_empty());
}
#[test]
fn reliability_default_best_effort_100ms() {
let d = ReliabilityQosPolicy::default();
assert_eq!(d.kind, ReliabilityKind::BestEffort);
assert_eq!(d.max_blocking_time, Duration::from_millis(100));
}
#[test]
fn transport_priority_default_zero() {
assert_eq!(TransportPriorityQosPolicy::default().value, 0);
}
#[test]
fn lifespan_default_infinite() {
assert!(LifespanQosPolicy::default().duration.is_infinite());
}
#[test]
fn history_default_keep_last_1() {
let d = HistoryQosPolicy::default();
assert_eq!(d.kind, HistoryKind::KeepLast);
assert_eq!(d.depth, 1);
}
#[test]
fn destination_order_default_by_reception() {
assert_eq!(
DestinationOrderQosPolicy::default().kind,
DestinationOrderKind::ByReceptionTimestamp
);
}
#[test]
fn resource_limits_default_unlimited() {
let d = ResourceLimitsQosPolicy::default();
assert_eq!(d.max_samples, LENGTH_UNLIMITED);
assert_eq!(d.max_instances, LENGTH_UNLIMITED);
assert_eq!(d.max_samples_per_instance, LENGTH_UNLIMITED);
}
#[test]
fn reader_data_lifecycle_default_infinite() {
let d = ReaderDataLifecycleQosPolicy::default();
assert!(d.autopurge_nowriter_samples_delay.is_infinite());
assert!(d.autopurge_disposed_samples_delay.is_infinite());
}
#[test]
fn writer_data_lifecycle_default_autodispose() {
assert!(WriterDataLifecycleQosPolicy::default().autodispose_unregistered_instances);
}
#[test]
fn ownership_default_shared() {
assert_eq!(OwnershipQosPolicy::default().kind, OwnershipKind::Shared);
}
#[test]
fn ownership_strength_default_zero() {
assert_eq!(OwnershipStrengthQosPolicy::default().value, 0);
}
#[test]
fn entity_factory_default_autoenable() {
assert!(EntityFactoryQosPolicy::default().autoenable_created_entities);
}
}