tests(chain): add unit tests (#411)

* add chain id and display unit tests

* add from, into and default implementation tests

* add encodable length test for id chain
This commit is contained in:
Mariano A. Nicolini
2022-12-13 13:02:55 -03:00
committed by GitHub
parent 6e622d7533
commit 2b1bb05ca3

View File

@@ -137,3 +137,118 @@ impl Default for Chain {
ethers_core::types::Chain::Mainnet.into()
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_id() {
let chain = Chain::Id(1234);
assert_eq!(chain.id(), 1234);
}
#[test]
fn test_named_id() {
let chain = Chain::Named(ethers_core::types::Chain::Goerli);
assert_eq!(chain.id(), 5);
}
#[test]
fn test_legacy_named_chain() {
let chain = Chain::Named(ethers_core::types::Chain::Optimism);
assert!(chain.is_legacy());
}
#[test]
fn test_not_legacy_named_chain() {
let chain = Chain::Named(ethers_core::types::Chain::Mainnet);
assert!(!chain.is_legacy());
}
#[test]
fn test_not_legacy_id_chain() {
let chain = Chain::Id(1234);
assert!(!chain.is_legacy());
}
#[test]
fn test_display_named_chain() {
let chain = Chain::Named(ethers_core::types::Chain::Mainnet);
assert_eq!(format!("{}", chain), "mainnet");
}
#[test]
fn test_display_id_chain() {
let chain = Chain::Id(1234);
assert_eq!(format!("{}", chain), "1234");
}
#[test]
fn test_from_u256() {
let n = U256::from(1234);
let chain = Chain::from(n);
let expected = Chain::Id(1234);
assert_eq!(chain, expected);
}
#[test]
fn test_into_u256() {
let chain = Chain::Named(ethers_core::types::Chain::Goerli);
let n: U256 = chain.into();
let expected = U256::from(5);
assert_eq!(n, expected);
}
#[test]
#[allow(non_snake_case)]
fn test_into_U64() {
let chain = Chain::Named(ethers_core::types::Chain::Goerli);
let n: U64 = chain.into();
let expected = U64::from(5);
assert_eq!(n, expected);
}
#[test]
fn test_from_str_named_chain() {
let result = Chain::from_str("mainnet");
let expected = Chain::Named(ethers_core::types::Chain::Mainnet);
assert!(result.is_ok());
assert_eq!(result.unwrap(), expected);
}
#[test]
fn test_from_str_named_chain_error() {
let result = Chain::from_str("chain");
assert!(result.is_err());
}
#[test]
fn test_from_str_id_chain() {
let result = Chain::from_str("1234");
let expected = Chain::Id(1234);
assert!(result.is_ok());
assert_eq!(result.unwrap(), expected);
}
#[test]
fn test_default() {
let default = Chain::default();
let expected = Chain::Named(ethers_core::types::Chain::Mainnet);
assert_eq!(default, expected);
}
#[test]
fn test_id_chain_encodable_length() {
let chain = Chain::Id(1234);
assert_eq!(chain.length(), 3);
}
}