mirror of
https://github.com/fluencelabs/rust-libp2p
synced 2025-06-30 10:11:33 +00:00
refactor(gossipsub): miscellaneous tidy-up of config tests
- Move helpers to the bottom - Restructure tests to follow arrange-act-assert - Only set necessary options on builder for each test Pull-Request: #3836.
This commit is contained in:
@ -893,13 +893,90 @@ mod test {
|
|||||||
use std::hash::{Hash, Hasher};
|
use std::hash::{Hash, Hasher};
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn create_thing() {
|
fn create_config_with_message_id_as_plain_function() {
|
||||||
let builder: Config = ConfigBuilder::default()
|
let config = ConfigBuilder::default()
|
||||||
.protocol_id_prefix("purple")
|
.message_id_fn(message_id_plain_function)
|
||||||
.build()
|
.build()
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
dbg!(builder);
|
let result = config.message_id(&get_gossipsub_message());
|
||||||
|
|
||||||
|
assert_eq!(result, get_expected_message_id());
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn create_config_with_message_id_as_closure() {
|
||||||
|
let config = ConfigBuilder::default()
|
||||||
|
.message_id_fn(|message: &Message| {
|
||||||
|
let mut s = DefaultHasher::new();
|
||||||
|
message.data.hash(&mut s);
|
||||||
|
let mut v = s.finish().to_string();
|
||||||
|
v.push('e');
|
||||||
|
MessageId::from(v)
|
||||||
|
})
|
||||||
|
.build()
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
let result = config.message_id(&get_gossipsub_message());
|
||||||
|
|
||||||
|
assert_eq!(result, get_expected_message_id());
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn create_config_with_message_id_as_closure_with_variable_capture() {
|
||||||
|
let captured: char = 'e';
|
||||||
|
|
||||||
|
let config = ConfigBuilder::default()
|
||||||
|
.message_id_fn(move |message: &Message| {
|
||||||
|
let mut s = DefaultHasher::new();
|
||||||
|
message.data.hash(&mut s);
|
||||||
|
let mut v = s.finish().to_string();
|
||||||
|
v.push(captured);
|
||||||
|
MessageId::from(v)
|
||||||
|
})
|
||||||
|
.build()
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
let result = config.message_id(&get_gossipsub_message());
|
||||||
|
|
||||||
|
assert_eq!(result, get_expected_message_id());
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn create_config_with_protocol_id_prefix() {
|
||||||
|
let protocol_config = ProtocolConfig::new(
|
||||||
|
&ConfigBuilder::default()
|
||||||
|
.protocol_id_prefix("purple")
|
||||||
|
.build()
|
||||||
|
.unwrap(),
|
||||||
|
);
|
||||||
|
|
||||||
|
let protocol_ids = protocol_config.protocol_info();
|
||||||
|
|
||||||
|
assert_eq!(protocol_ids.len(), 2);
|
||||||
|
|
||||||
|
assert_eq!(protocol_ids[0].protocol_id, b"/purple/1.1.0".to_vec());
|
||||||
|
assert_eq!(protocol_ids[0].kind, PeerKind::Gossipsubv1_1);
|
||||||
|
|
||||||
|
assert_eq!(protocol_ids[1].protocol_id, b"/purple/1.0.0".to_vec());
|
||||||
|
assert_eq!(protocol_ids[1].kind, PeerKind::Gossipsub);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn create_config_with_custom_protocol_id() {
|
||||||
|
let protocol_config = ProtocolConfig::new(
|
||||||
|
&ConfigBuilder::default()
|
||||||
|
.protocol_id("purple", Version::V1_0)
|
||||||
|
.build()
|
||||||
|
.unwrap(),
|
||||||
|
);
|
||||||
|
|
||||||
|
let protocol_ids = protocol_config.protocol_info();
|
||||||
|
|
||||||
|
assert_eq!(protocol_ids.len(), 1);
|
||||||
|
|
||||||
|
assert_eq!(protocol_ids[0].protocol_id, b"purple".to_vec());
|
||||||
|
assert_eq!(protocol_ids[0].kind, PeerKind::Gossipsub);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_gossipsub_message() -> Message {
|
fn get_gossipsub_message() -> Message {
|
||||||
@ -924,102 +1001,4 @@ mod test {
|
|||||||
v.push('e');
|
v.push('e');
|
||||||
MessageId::from(v)
|
MessageId::from(v)
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn create_config_with_message_id_as_plain_function() {
|
|
||||||
let builder: Config = ConfigBuilder::default()
|
|
||||||
.protocol_id_prefix("purple")
|
|
||||||
.message_id_fn(message_id_plain_function)
|
|
||||||
.build()
|
|
||||||
.unwrap();
|
|
||||||
|
|
||||||
let result = builder.message_id(&get_gossipsub_message());
|
|
||||||
assert_eq!(result, get_expected_message_id());
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn create_config_with_message_id_as_closure() {
|
|
||||||
let closure = |message: &Message| {
|
|
||||||
let mut s = DefaultHasher::new();
|
|
||||||
message.data.hash(&mut s);
|
|
||||||
let mut v = s.finish().to_string();
|
|
||||||
v.push('e');
|
|
||||||
MessageId::from(v)
|
|
||||||
};
|
|
||||||
|
|
||||||
let builder: Config = ConfigBuilder::default()
|
|
||||||
.protocol_id_prefix("purple")
|
|
||||||
.message_id_fn(closure)
|
|
||||||
.build()
|
|
||||||
.unwrap();
|
|
||||||
|
|
||||||
let result = builder.message_id(&get_gossipsub_message());
|
|
||||||
assert_eq!(result, get_expected_message_id());
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn create_config_with_message_id_as_closure_with_variable_capture() {
|
|
||||||
let captured: char = 'e';
|
|
||||||
let closure = move |message: &Message| {
|
|
||||||
let mut s = DefaultHasher::new();
|
|
||||||
message.data.hash(&mut s);
|
|
||||||
let mut v = s.finish().to_string();
|
|
||||||
v.push(captured);
|
|
||||||
MessageId::from(v)
|
|
||||||
};
|
|
||||||
|
|
||||||
let builder: Config = ConfigBuilder::default()
|
|
||||||
.protocol_id_prefix("purple")
|
|
||||||
.message_id_fn(closure)
|
|
||||||
.build()
|
|
||||||
.unwrap();
|
|
||||||
|
|
||||||
let result = builder.message_id(&get_gossipsub_message());
|
|
||||||
assert_eq!(result, get_expected_message_id());
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn create_config_with_protocol_id_prefix() {
|
|
||||||
let builder: Config = ConfigBuilder::default()
|
|
||||||
.protocol_id_prefix("purple")
|
|
||||||
.validation_mode(ValidationMode::Anonymous)
|
|
||||||
.message_id_fn(message_id_plain_function)
|
|
||||||
.build()
|
|
||||||
.unwrap();
|
|
||||||
|
|
||||||
assert_eq!(builder.protocol_id(), "purple");
|
|
||||||
assert_eq!(builder.custom_id_version(), &None);
|
|
||||||
|
|
||||||
let protocol_config = ProtocolConfig::new(&builder);
|
|
||||||
let protocol_ids = protocol_config.protocol_info();
|
|
||||||
|
|
||||||
assert_eq!(protocol_ids.len(), 2);
|
|
||||||
|
|
||||||
assert_eq!(protocol_ids[0].protocol_id, b"/purple/1.1.0".to_vec());
|
|
||||||
assert_eq!(protocol_ids[0].kind, PeerKind::Gossipsubv1_1);
|
|
||||||
|
|
||||||
assert_eq!(protocol_ids[1].protocol_id, b"/purple/1.0.0".to_vec());
|
|
||||||
assert_eq!(protocol_ids[1].kind, PeerKind::Gossipsub);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn create_config_with_custom_protocol_id() {
|
|
||||||
let builder: Config = ConfigBuilder::default()
|
|
||||||
.protocol_id("purple", Version::V1_0)
|
|
||||||
.validation_mode(ValidationMode::Anonymous)
|
|
||||||
.message_id_fn(message_id_plain_function)
|
|
||||||
.build()
|
|
||||||
.unwrap();
|
|
||||||
|
|
||||||
assert_eq!(builder.protocol_id(), "purple");
|
|
||||||
assert_eq!(builder.custom_id_version(), &Some(Version::V1_0));
|
|
||||||
|
|
||||||
let protocol_config = ProtocolConfig::new(&builder);
|
|
||||||
let protocol_ids = protocol_config.protocol_info();
|
|
||||||
|
|
||||||
assert_eq!(protocol_ids.len(), 1);
|
|
||||||
|
|
||||||
assert_eq!(protocol_ids[0].protocol_id, b"purple".to_vec());
|
|
||||||
assert_eq!(protocol_ids[0].kind, PeerKind::Gossipsub);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user