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};
|
||||
|
||||
#[test]
|
||||
fn create_thing() {
|
||||
let builder: Config = ConfigBuilder::default()
|
||||
.protocol_id_prefix("purple")
|
||||
fn create_config_with_message_id_as_plain_function() {
|
||||
let config = ConfigBuilder::default()
|
||||
.message_id_fn(message_id_plain_function)
|
||||
.build()
|
||||
.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 {
|
||||
@ -924,102 +1001,4 @@ mod test {
|
||||
v.push('e');
|
||||
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