api::log_stream tests, closes #6
This commit is contained in:
parent
f2ccb7e8d9
commit
8abf7999f3
|
@ -0,0 +1,237 @@
|
|||
extern crate futures;
|
||||
extern crate web3;
|
||||
extern crate bridge;
|
||||
#[macro_use]
|
||||
extern crate tests;
|
||||
|
||||
use std::time::Duration;
|
||||
use web3::types::{FilterBuilder, H160, H256};
|
||||
use bridge::api::{LogStreamInit, log_stream, LogStreamItem};
|
||||
|
||||
test_transport_stream! {
|
||||
name => basic,
|
||||
init => |transport| {
|
||||
let init = LogStreamInit {
|
||||
after: 10,
|
||||
filter: FilterBuilder::default(),
|
||||
poll_interval: Duration::from_secs(0),
|
||||
confirmations: 10,
|
||||
};
|
||||
|
||||
log_stream(transport, init).take(2)
|
||||
},
|
||||
expected => vec![LogStreamItem {
|
||||
from: 0xb,
|
||||
to: 0x1006,
|
||||
logs: vec![],
|
||||
}, LogStreamItem {
|
||||
from: 0x1007,
|
||||
to: 0x1007,
|
||||
logs: vec![],
|
||||
}],
|
||||
"eth_blockNumber" =>
|
||||
req => r#"[]"#,
|
||||
res => r#""0x1010""#;
|
||||
"eth_getLogs" =>
|
||||
req => r#"[{"address":null,"fromBlock":"0xb","limit":null,"toBlock":"0x1006","topics":null}]"#,
|
||||
res => r#"[]"#;
|
||||
"eth_blockNumber" =>
|
||||
req => r#"[]"#,
|
||||
res => r#""0x1010""#;
|
||||
"eth_blockNumber" =>
|
||||
req => r#"[]"#,
|
||||
res => r#""0x1011""#;
|
||||
"eth_getLogs" =>
|
||||
req => r#"[{"address":null,"fromBlock":"0x1007","limit":null,"toBlock":"0x1007","topics":null}]"#,
|
||||
res => r#"[]"#;
|
||||
}
|
||||
|
||||
test_transport_stream! {
|
||||
name => rollback,
|
||||
init => |transport| {
|
||||
let init = LogStreamInit {
|
||||
after: 10,
|
||||
filter: FilterBuilder::default(),
|
||||
poll_interval: Duration::from_secs(0),
|
||||
confirmations: 10,
|
||||
};
|
||||
|
||||
log_stream(transport, init).take(2)
|
||||
},
|
||||
expected => vec![LogStreamItem {
|
||||
from: 0xb,
|
||||
to: 0xd,
|
||||
logs: vec![],
|
||||
}, LogStreamItem {
|
||||
from: 0xe,
|
||||
to: 0xf,
|
||||
logs: vec![],
|
||||
}],
|
||||
"eth_blockNumber" =>
|
||||
req => r#"[]"#,
|
||||
res => r#""0x17""#;
|
||||
"eth_getLogs" =>
|
||||
req => r#"[{"address":null,"fromBlock":"0xb","limit":null,"toBlock":"0xd","topics":null}]"#,
|
||||
res => r#"[]"#;
|
||||
"eth_blockNumber" =>
|
||||
req => r#"[]"#,
|
||||
res => r#""0x16""#;
|
||||
"eth_blockNumber" =>
|
||||
req => r#"[]"#,
|
||||
res => r#""0x17""#;
|
||||
"eth_blockNumber" =>
|
||||
req => r#"[]"#,
|
||||
res => r#""0x19""#;
|
||||
"eth_getLogs" =>
|
||||
req => r#"[{"address":null,"fromBlock":"0xe","limit":null,"toBlock":"0xf","topics":null}]"#,
|
||||
res => r#"[]"#;
|
||||
}
|
||||
|
||||
test_transport_stream! {
|
||||
name => rollback_before_init,
|
||||
init => |transport| {
|
||||
let init = LogStreamInit {
|
||||
after: 10,
|
||||
filter: FilterBuilder::default(),
|
||||
poll_interval: Duration::from_secs(0),
|
||||
confirmations: 10,
|
||||
};
|
||||
|
||||
log_stream(transport, init).take(1)
|
||||
},
|
||||
expected => vec![LogStreamItem {
|
||||
from: 0xb,
|
||||
to: 0xd,
|
||||
logs: vec![],
|
||||
}],
|
||||
"eth_blockNumber" =>
|
||||
req => r#"[]"#,
|
||||
res => r#""0x13""#;
|
||||
"eth_blockNumber" =>
|
||||
req => r#"[]"#,
|
||||
res => r#""0x14""#;
|
||||
"eth_blockNumber" =>
|
||||
req => r#"[]"#,
|
||||
res => r#""0x17""#;
|
||||
"eth_getLogs" =>
|
||||
req => r#"[{"address":null,"fromBlock":"0xb","limit":null,"toBlock":"0xd","topics":null}]"#,
|
||||
res => r#"[]"#;
|
||||
}
|
||||
|
||||
test_transport_stream! {
|
||||
name => zero_confirmations,
|
||||
init => |transport| {
|
||||
let init = LogStreamInit {
|
||||
after: 10,
|
||||
filter: FilterBuilder::default(),
|
||||
poll_interval: Duration::from_secs(0),
|
||||
confirmations: 0,
|
||||
};
|
||||
|
||||
log_stream(transport, init).take(3)
|
||||
},
|
||||
expected => vec![LogStreamItem {
|
||||
from: 0xb,
|
||||
to: 0x13,
|
||||
logs: vec![],
|
||||
}, LogStreamItem {
|
||||
from: 0x14,
|
||||
to: 0x14,
|
||||
logs: vec![],
|
||||
}, LogStreamItem {
|
||||
from: 0x15,
|
||||
to: 0x17,
|
||||
logs: vec![],
|
||||
}],
|
||||
"eth_blockNumber" =>
|
||||
req => r#"[]"#,
|
||||
res => r#""0x13""#;
|
||||
"eth_getLogs" =>
|
||||
req => r#"[{"address":null,"fromBlock":"0xb","limit":null,"toBlock":"0x13","topics":null}]"#,
|
||||
res => r#"[]"#;
|
||||
"eth_blockNumber" =>
|
||||
req => r#"[]"#,
|
||||
res => r#""0x14""#;
|
||||
"eth_getLogs" =>
|
||||
req => r#"[{"address":null,"fromBlock":"0x14","limit":null,"toBlock":"0x14","topics":null}]"#,
|
||||
res => r#"[]"#;
|
||||
"eth_blockNumber" =>
|
||||
req => r#"[]"#,
|
||||
res => r#""0x14""#;
|
||||
"eth_blockNumber" =>
|
||||
req => r#"[]"#,
|
||||
res => r#""0x17""#;
|
||||
"eth_getLogs" =>
|
||||
req => r#"[{"address":null,"fromBlock":"0x15","limit":null,"toBlock":"0x17","topics":null}]"#,
|
||||
res => r#"[]"#;
|
||||
}
|
||||
|
||||
test_transport_stream! {
|
||||
name => filter_with_address,
|
||||
init => |transport| {
|
||||
let init = LogStreamInit {
|
||||
after: 11,
|
||||
filter: FilterBuilder::default().address(vec![H160([0x11u8; 20])]),
|
||||
poll_interval: Duration::from_secs(0),
|
||||
confirmations: 0,
|
||||
};
|
||||
|
||||
log_stream(transport, init).take(2)
|
||||
},
|
||||
expected => vec![LogStreamItem {
|
||||
from: 0xc,
|
||||
to: 0x13,
|
||||
logs: vec![],
|
||||
}, LogStreamItem {
|
||||
from: 0x14,
|
||||
to: 0x14,
|
||||
logs: vec![],
|
||||
}],
|
||||
"eth_blockNumber" =>
|
||||
req => r#"[]"#,
|
||||
res => r#""0x13""#;
|
||||
"eth_getLogs" =>
|
||||
req => r#"[{"address":["0x1111111111111111111111111111111111111111"],"fromBlock":"0xc","limit":null,"toBlock":"0x13","topics":null}]"#,
|
||||
res => r#"[]"#;
|
||||
"eth_blockNumber" =>
|
||||
req => r#"[]"#,
|
||||
res => r#""0x14""#;
|
||||
"eth_getLogs" =>
|
||||
req => r#"[{"address":["0x1111111111111111111111111111111111111111"],"fromBlock":"0x14","limit":null,"toBlock":"0x14","topics":null}]"#,
|
||||
res => r#"[]"#;
|
||||
}
|
||||
|
||||
test_transport_stream! {
|
||||
name => filter_with_topics,
|
||||
init => |transport| {
|
||||
let init = LogStreamInit {
|
||||
after: 11,
|
||||
filter: FilterBuilder::default().topics(Some(vec![H256([0x22; 32])]), None, None, None),
|
||||
poll_interval: Duration::from_secs(0),
|
||||
confirmations: 0,
|
||||
};
|
||||
|
||||
log_stream(transport, init).take(2)
|
||||
},
|
||||
expected => vec![LogStreamItem {
|
||||
from: 0xc,
|
||||
to: 0x13,
|
||||
logs: vec![],
|
||||
}, LogStreamItem {
|
||||
from: 0x14,
|
||||
to: 0x14,
|
||||
logs: vec![],
|
||||
}],
|
||||
"eth_blockNumber" =>
|
||||
req => r#"[]"#,
|
||||
res => r#""0x13""#;
|
||||
"eth_getLogs" =>
|
||||
req => r#"[{"address":null,"fromBlock":"0xc","limit":null,"toBlock":"0x13","topics":[["0x2222222222222222222222222222222222222222222222222222222222222222"],null,null,null]}]"#,
|
||||
res => r#"[]"#;
|
||||
"eth_blockNumber" =>
|
||||
req => r#"[]"#,
|
||||
res => r#""0x14""#;
|
||||
"eth_getLogs" =>
|
||||
req => r#"[{"address":null,"fromBlock":"0x14","limit":null,"toBlock":"0x14","topics":[["0x2222222222222222222222222222222222222222222222222222222222222222"],null,null,null]}]"#,
|
||||
res => r#"[]"#;
|
||||
}
|
|
@ -1,47 +0,0 @@
|
|||
extern crate futures;
|
||||
extern crate web3;
|
||||
extern crate bridge;
|
||||
#[macro_use]
|
||||
extern crate tests;
|
||||
|
||||
use std::time::Duration;
|
||||
use web3::types::FilterBuilder;
|
||||
use bridge::api::{LogStreamInit, log_stream, LogStreamItem};
|
||||
|
||||
test_transport_stream! {
|
||||
name => log_stream_basic,
|
||||
init => |transport| {
|
||||
let init = LogStreamInit {
|
||||
after: 10,
|
||||
filter: FilterBuilder::default(),
|
||||
poll_interval: Duration::from_secs(0),
|
||||
confirmations: 10,
|
||||
};
|
||||
|
||||
log_stream(transport, init).take(2)
|
||||
},
|
||||
expected => vec![LogStreamItem {
|
||||
from: 0xb,
|
||||
to: 0x1006,
|
||||
logs: vec![],
|
||||
}, LogStreamItem {
|
||||
from: 0x1007,
|
||||
to: 0x1007,
|
||||
logs: vec![],
|
||||
}],
|
||||
"eth_blockNumber" =>
|
||||
req => r#"[]"#,
|
||||
res => r#""0x1010""#;
|
||||
"eth_getLogs" =>
|
||||
req => r#"[{"address":null,"fromBlock":"0xb","limit":null,"toBlock":"0x1006","topics":null}]"#,
|
||||
res => r#"[]"#;
|
||||
"eth_blockNumber" =>
|
||||
req => r#"[]"#,
|
||||
res => r#""0x1010""#;
|
||||
"eth_blockNumber" =>
|
||||
req => r#"[]"#,
|
||||
res => r#""0x1011""#;
|
||||
"eth_getLogs" =>
|
||||
req => r#"[{"address":null,"fromBlock":"0x1007","limit":null,"toBlock":"0x1007","topics":null}]"#,
|
||||
res => r#"[]"#;
|
||||
}
|
Loading…
Reference in New Issue