Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Messageのテストをbytes配列を使ってテストするように修正 #81

Merged
merged 3 commits into from
Sep 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
106 changes: 47 additions & 59 deletions moqt-core/src/modules/messages/announce.rs
Original file line number Diff line number Diff line change
Expand Up @@ -95,19 +95,15 @@ mod success {
use crate::messages::moqt_payload::MOQTPayload;
use crate::messages::version_specific_parameters::AuthorizationInfo;
use crate::modules::messages::announce::Announce;
use crate::modules::messages::version_specific_parameters::{
VersionSpecificParameter, VersionSpecificParameterType,
};
use crate::modules::variable_integer::write_variable_integer;
use crate::modules::messages::version_specific_parameters::VersionSpecificParameter;
use bytes::BytesMut;

#[test]
fn packetize_announce_with_parameter() {
let track_namespace = "live.example.com/meeting/123/member/alice/".to_string();
let track_namespace = "live.example.com".to_string();
let number_of_parameters = 1;

let parameter_value = "test".to_string();
let parameter_length = parameter_value.len() as u8;

let parameter = VersionSpecificParameter::AuthorizationInfo(AuthorizationInfo::new(
parameter_value.clone(),
));
Expand All @@ -117,93 +113,85 @@ mod success {
let mut buf = bytes::BytesMut::new();
announce_message.packetize(&mut buf);

// Track Namespace Length
let mut combined_bytes = Vec::from((track_namespace.len() as u8).to_be_bytes());
// Track Namespace
combined_bytes.extend(track_namespace.as_bytes().to_vec());
// Number of Parameters
combined_bytes.extend(1u8.to_be_bytes());
// Parameters
combined_bytes
.extend((VersionSpecificParameterType::AuthorizationInfo as u8).to_be_bytes());
combined_bytes.extend(write_variable_integer(parameter_length as u64));
combined_bytes.extend(parameter_value.as_bytes());

assert_eq!(buf.as_ref(), combined_bytes.as_slice());
let expected_bytes_array = [
yuki-uchida marked this conversation as resolved.
Show resolved Hide resolved
16, // Track Namespace(b): Length
108, 105, 118, 101, 46, 101, 120, 97, 109, 112, 108, 101, 46, 99, 111,
109, // Track Namespace(b): Value("live.example.com")
1, // Number of Parameters (i)
2, // Parameters (..): Parameter Type(AuthorizationInfo)
4, // Parameters (..): Length
116, 101, 115, 116, // Parameters (..): Value("test")
];

assert_eq!(buf.as_ref(), expected_bytes_array);
}

#[test]
fn depacketize_announce_with_parameter() {
let track_namespace = "live.example.com/meeting/123/member/alice/".to_string();
let number_of_parameters = 1;
let bytes_array = [
16, // Track Namespace(b): Length
108, 105, 118, 101, 46, 101, 120, 97, 109, 112, 108, 101, 46, 99, 111,
109, // Track Namespace(b): Value("live.example.com")
1, // Number of Parameters (i)
2, // Parameters (..): Parameter Type(AuthorizationInfo)
4, // Parameters (..): Length
116, 101, 115, 116, // Parameters (..): Value("test")
];
let mut buf = BytesMut::with_capacity(bytes_array.len());
buf.extend_from_slice(&bytes_array);
let depacketized_announce_message = Announce::depacketize(&mut buf).unwrap();

let track_namespace = "live.example.com".to_string();
let number_of_parameters = 1;
let parameter_value = "test".to_string();
let parameter_length = parameter_value.len() as u8;

let parameter = VersionSpecificParameter::AuthorizationInfo(AuthorizationInfo::new(
parameter_value.clone(),
));
let parameters = vec![parameter];
let expected_announce_message =
Announce::new(track_namespace.clone(), number_of_parameters, parameters);

// Track Namespace Length
let mut combined_bytes = Vec::from((track_namespace.len() as u8).to_be_bytes());
// Track Namespace
combined_bytes.extend(track_namespace.as_bytes().to_vec());
// Number of Parameters
combined_bytes.extend(1u8.to_be_bytes());
// Parameters
combined_bytes
.extend((VersionSpecificParameterType::AuthorizationInfo as u8).to_be_bytes());
combined_bytes.extend(write_variable_integer(parameter_length as u64));
combined_bytes.extend(parameter_value.as_bytes());

let mut buf = bytes::BytesMut::from(combined_bytes.as_slice());
let depacketized_announce_message = Announce::depacketize(&mut buf).unwrap();

assert_eq!(depacketized_announce_message, expected_announce_message);
}

#[test]
fn packetize_announce_without_parameter() {
let track_namespace = "live.example.com/meeting/123/member/alice/".to_string();
let track_namespace = "live.example.com".to_string();
let number_of_parameters = 0;
let parameters = vec![];
let announce_message =
Announce::new(track_namespace.clone(), number_of_parameters, parameters);
let mut buf = bytes::BytesMut::new();
announce_message.packetize(&mut buf);

// Track Namespace Length
let mut combined_bytes = Vec::from((track_namespace.len() as u8).to_be_bytes());
// Track Namespace
combined_bytes.extend(track_namespace.as_bytes().to_vec());
// Number of Parameters
combined_bytes.extend(0u8.to_be_bytes());
let expected_bytes_array = [
16, // Track Namespace(b): Length
108, 105, 118, 101, 46, 101, 120, 97, 109, 112, 108, 101, 46, 99, 111,
109, // Track Namespace(b): Value("live.example.com")
0, // Number of Parameters (i)
];

assert_eq!(buf.as_ref(), combined_bytes.as_slice());
assert_eq!(buf.as_ref(), expected_bytes_array);
}

#[test]
fn depacketize_announce_without_parameter() {
let track_namespace = "live.example.com/meeting/123/member/alice/".to_string();
let number_of_parameters = 0;
let bytes_array = [
16, // Track Namespace(b): Length
108, 105, 118, 101, 46, 101, 120, 97, 109, 112, 108, 101, 46, 99, 111,
109, // Track Namespace(b): Value("live.example.com")
0, // Number of Parameters (i)
];
let mut buf = BytesMut::with_capacity(bytes_array.len());
buf.extend_from_slice(&bytes_array);
let depacketized_announce_message = Announce::depacketize(&mut buf).unwrap();

let track_namespace = "live.example.com".to_string();
let number_of_parameters = 0;
let parameters = vec![];
let expected_announce_message =
Announce::new(track_namespace.clone(), number_of_parameters, parameters);

// Track Namespace Length
let mut combined_bytes = Vec::from((track_namespace.len() as u8).to_be_bytes());
// Track Namespace
combined_bytes.extend(track_namespace.as_bytes().to_vec());
// Number of Parameters
combined_bytes.extend(0u8.to_be_bytes());

let mut buf = bytes::BytesMut::from(combined_bytes.as_slice());
let depacketized_announce_message = Announce::depacketize(&mut buf).unwrap();

assert_eq!(depacketized_announce_message, expected_announce_message);
}
}
41 changes: 22 additions & 19 deletions moqt-core/src/modules/messages/announce_error.rs
Original file line number Diff line number Diff line change
Expand Up @@ -82,45 +82,48 @@ mod success {
use crate::{
messages::moqt_payload::MOQTPayload, modules::messages::announce_error::AnnounceError,
};
use bytes::BytesMut;
#[test]
fn packetize_announce_error() {
let track_namespace = "test".to_string();
let track_namespace_length = track_namespace.len() as u8;
let error_code: u64 = 1;
let reason_phrase = "already exist".to_string();

let announce_error =
AnnounceError::new(track_namespace.clone(), error_code, reason_phrase.clone());
let mut buf = bytes::BytesMut::new();
announce_error.packetize(&mut buf);

let mut combined_bytes = Vec::from(track_namespace_length.to_be_bytes());
combined_bytes.extend_from_slice(track_namespace.as_bytes());
combined_bytes.extend_from_slice(&(error_code as u8).to_be_bytes());
combined_bytes.extend_from_slice(&(reason_phrase.len() as u8).to_be_bytes());
combined_bytes.extend_from_slice(reason_phrase.as_bytes());

assert_eq!(buf.as_ref(), combined_bytes.as_slice());
let expected_bytes_array = [
4, // Track Namespace(b): Length
116, 101, 115, 116, // Track Namespace(b): Value("test")
1, // Error Code (i)
13, // Reason Phrase (b): length
97, 108, 114, 101, 97, 100, 121, 32, 101, 120, 105, 115,
116, // Reason Phrase (b): Value("already exist")
];
assert_eq!(buf.as_ref(), expected_bytes_array.as_slice());
}

#[test]
fn depacketize_announce_error() {
let bytes_array = [
4, // Track Namespace(b): Length
116, 101, 115, 116, // Track Namespace(b): Value("test")
1, // Error Code (i)
13, // Reason Phrase (b): length
97, 108, 114, 101, 97, 100, 121, 32, 101, 120, 105, 115,
116, // Reason Phrase (b): Value("already exist")
];
let mut buf = BytesMut::with_capacity(bytes_array.len());
buf.extend_from_slice(&bytes_array);
let depacketized_announce_error = AnnounceError::depacketize(&mut buf).unwrap();

let track_namespace = "test".to_string();
let track_namespace_length = track_namespace.len() as u8;
let error_code: u64 = 1;
let reason_phrase = "already exist".to_string();
let expected_announce_error =
AnnounceError::new(track_namespace.clone(), error_code, reason_phrase.clone());

let mut combined_bytes = Vec::from(track_namespace_length.to_be_bytes());
combined_bytes.extend_from_slice(track_namespace.as_bytes());
combined_bytes.extend_from_slice(&(error_code as u8).to_be_bytes());
combined_bytes.extend_from_slice(&(reason_phrase.len() as u8).to_be_bytes());
combined_bytes.extend_from_slice(reason_phrase.as_bytes());

let mut buf = bytes::BytesMut::from(combined_bytes.as_slice());
let depacketized_announce_error = AnnounceError::depacketize(&mut buf).unwrap();

assert_eq!(depacketized_announce_error, expected_announce_error);
}
}
27 changes: 12 additions & 15 deletions moqt-core/src/modules/messages/announce_ok.rs
Original file line number Diff line number Diff line change
Expand Up @@ -55,27 +55,24 @@ mod success {
let mut buf = BytesMut::new();
announce_ok.packetize(&mut buf);

// Track Namespace bytes Length
let mut combined_bytes = Vec::from((track_namespace.len() as u8).to_be_bytes());
// Track Namespace bytes
combined_bytes.extend(track_namespace.as_bytes().to_vec());

assert_eq!(buf.as_ref(), combined_bytes.as_slice());
let expected_bytes_array = [
4, // Track Namespace(b): Length
116, 101, 115, 116, // Track Namespace(b): Value("test")
];
assert_eq!(buf.as_ref(), expected_bytes_array.as_slice());
}

#[test]
fn depacketize() {
let track_namespace = "test".to_string();
let mut buf = BytesMut::new();
// Track Namespace bytes Length
buf.extend((track_namespace.len() as u8).to_be_bytes());
// Track Namespace bytes
buf.extend(track_namespace.as_bytes().to_vec());

let bytes_array = [
4, // Track Namespace(b): Length
116, 101, 115, 116, // Track Namespace(b): Value("test")
];
let mut buf = BytesMut::with_capacity(bytes_array.len());
buf.extend_from_slice(&bytes_array);
let announce_ok = AnnounceOk::depacketize(&mut buf).unwrap();

let expected_announce_ok = AnnounceOk::new(track_namespace.clone());

let expected_announce_ok = AnnounceOk::new("test".to_string());
assert_eq!(announce_ok, expected_announce_ok);
}
}
64 changes: 25 additions & 39 deletions moqt-core/src/modules/messages/client_setup.rs
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,6 @@ impl MOQTPayload for ClientSetup {

#[cfg(test)]
mod success {
use crate::modules::variable_integer::write_variable_integer;
use crate::{
constants::MOQ_TRANSPORT_VERSION,
messages::moqt_payload::MOQTPayload,
Expand All @@ -94,62 +93,49 @@ mod success {
setup_parameters::{RoleCase, RoleParameter, SetupParameter},
},
};
use bytes::BytesMut;
#[test]
fn packetize_client_setup() {
let supported_versions = vec![MOQ_TRANSPORT_VERSION];
let supported_versions_length = supported_versions.len() as u8;

let role_parameter = RoleParameter::new(RoleCase::Delivery);
let setup_parameters = vec![SetupParameter::RoleParameter(role_parameter.clone())];
let setup_parameters_length = setup_parameters.len() as u8;

let client_setup = ClientSetup::new(supported_versions, setup_parameters.clone());
let mut buf = bytes::BytesMut::new();
client_setup.packetize(&mut buf);

// Number of Supported Versions (i)
let mut combined_bytes = Vec::from(supported_versions_length.to_be_bytes());
// Supported Version (i)
combined_bytes.extend(write_variable_integer(MOQ_TRANSPORT_VERSION as u64));
// Number of Parameters (i)
combined_bytes.extend(setup_parameters_length.to_be_bytes());
// SETUP Parameters (..)
combined_bytes.extend(vec![
role_parameter.key as u8,
role_parameter.value_length,
role_parameter.value as u8,
]);

assert_eq!(buf.as_ref(), combined_bytes.as_slice());
let expected_bytes_array = [
1, // Number of Supported Versions (i)
192, // Supported Version (i): Length(11 of 2MSB)
0, 0, 0, 255, 0, 0, 1, // Supported Version(i): Value(0xff000001) in 62bit
1, // Number of Parameters (i)
0, // SETUP Parameters (..): Type(Role)
1, // SETUP Parameters (..): Length
2, // SETUP Parameters (..): Role(Delivery)
];

assert_eq!(buf.as_ref(), expected_bytes_array);
}

#[test]
fn depacketize_client_setup() {
let supported_versions = vec![MOQ_TRANSPORT_VERSION];
let supported_versions_length = supported_versions.len() as u8;
let bytes_array = [
1, // Number of Supported Versions (i)
192, // Supported Version (i): Length(11 of 2MSB)
0, 0, 0, 255, 0, 0, 1, // Supported Version(i): Value(0xff000001) in 62bit
1, // Number of Parameters (i)
0, // SETUP Parameters (..): Type(Role)
1, // SETUP Parameters (..): Length
2, // SETUP Parameters (..): Role(Delivery)
];
let mut buf = BytesMut::with_capacity(bytes_array.len());
buf.extend_from_slice(&bytes_array);
let depacketized_client_setup = ClientSetup::depacketize(&mut buf).unwrap();

let supported_versions = vec![MOQ_TRANSPORT_VERSION];
let role_parameter = RoleParameter::new(RoleCase::Delivery);
let setup_parameters = vec![SetupParameter::RoleParameter(role_parameter.clone())];
let setup_parameters_length = setup_parameters.len() as u8;

let expected_client_setup = ClientSetup::new(supported_versions, setup_parameters.clone());

// Number of Supported Versions (i)
let mut combined_bytes = Vec::from(supported_versions_length.to_be_bytes());
// Supported Version (i)
combined_bytes.extend(write_variable_integer(MOQ_TRANSPORT_VERSION as u64));
// Number of Parameters (i)
combined_bytes.extend(setup_parameters_length.to_be_bytes());
// SETUP Parameters (..)
combined_bytes.extend(vec![
role_parameter.key as u8,
role_parameter.value_length,
role_parameter.value as u8,
]);

let mut buf = bytes::BytesMut::from(combined_bytes.as_slice());
let depacketized_client_setup = ClientSetup::depacketize(&mut buf).unwrap();

assert_eq!(depacketized_client_setup, expected_client_setup);
}
}
Loading