0.3.4-alpha.4
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
// file: crates/common/game-realtime-websocket-lib/unit_tests/config.rs
|
||||
// version: 1
|
||||
|
||||
#[test]
|
||||
fn default_configuration_matches_the_product_baseline() {
|
||||
let config = crate::WebSocketConfig::default();
|
||||
assert_eq!(config.max_message_size(), 1024 * 1024);
|
||||
assert_eq!(config.max_frame_size(), 1024 * 1024);
|
||||
assert_eq!(config.write_buffer_size(), 64 * 1024);
|
||||
assert_eq!(config.max_write_buffer_size(), 2 * 1024 * 1024);
|
||||
assert_eq!(config.connect_timeout(), std::time::Duration::from_secs(10));
|
||||
assert_eq!(config.send_timeout(), std::time::Duration::from_secs(5));
|
||||
assert_eq!(config.close_timeout(), std::time::Duration::from_secs(2));
|
||||
assert!(config.validate().is_ok());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn invalid_message_and_write_buffer_bounds_are_rejected() {
|
||||
let zero_message = crate::WebSocketConfig::default().with_max_message_size(0);
|
||||
assert_invalid_configuration(zero_message);
|
||||
let oversized_frame = crate::WebSocketConfig::default().with_max_frame_size(2 * 1024 * 1024);
|
||||
assert_invalid_configuration(oversized_frame);
|
||||
let insufficient_write_buffer = crate::WebSocketConfig::default().with_max_write_buffer_size(1024 * 1024);
|
||||
assert_invalid_configuration(insufficient_write_buffer);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn zero_operation_deadlines_are_rejected() {
|
||||
assert_invalid_configuration(crate::WebSocketConfig::default().with_connect_timeout(std::time::Duration::ZERO));
|
||||
assert_invalid_configuration(crate::WebSocketConfig::default().with_send_timeout(std::time::Duration::ZERO));
|
||||
assert_invalid_configuration(crate::WebSocketConfig::default().with_close_timeout(std::time::Duration::ZERO));
|
||||
}
|
||||
|
||||
fn assert_invalid_configuration(config: crate::WebSocketConfig) {
|
||||
let result = config.validate();
|
||||
match result {
|
||||
Ok(()) => panic!("invalid WebSocket configuration was accepted"),
|
||||
Err(error) => assert_eq!(error.kind(), game_realtime_transport_lib::TransportErrorKind::InvalidConfiguration),
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user