request builder tests
This commit is contained in:
parent
d9087dd2b6
commit
aea9b1d6cc
@ -114,3 +114,53 @@ impl Requests {
|
||||
/// Get access to the underlying slice of requests.
|
||||
pub fn requests(&self) -> &[Request] { &self.requests }
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use request::*;
|
||||
use super::RequestBuilder;
|
||||
use util::H256;
|
||||
|
||||
#[test]
|
||||
fn all_scalar() {
|
||||
let mut builder = RequestBuilder::default();
|
||||
builder.push(Request::HeaderProof(IncompleteHeaderProofRequest {
|
||||
num: 100.into(),
|
||||
})).unwrap();
|
||||
builder.push(Request::Receipts(IncompleteReceiptsRequest {
|
||||
hash: H256::default().into(),
|
||||
})).unwrap();
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[should_panic]
|
||||
fn missing_backref() {
|
||||
let mut builder = RequestBuilder::default();
|
||||
builder.push(Request::HeaderProof(IncompleteHeaderProofRequest {
|
||||
num: Field::BackReference(100, 3),
|
||||
})).unwrap();
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[should_panic]
|
||||
fn wrong_kind() {
|
||||
let mut builder = RequestBuilder::default();
|
||||
assert!(builder.push(Request::HeaderProof(IncompleteHeaderProofRequest {
|
||||
num: 100.into(),
|
||||
})).is_ok());
|
||||
builder.push(Request::HeaderProof(IncompleteHeaderProofRequest {
|
||||
num: Field::BackReference(0, 0),
|
||||
})).unwrap();
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn good_backreference() {
|
||||
let mut builder = RequestBuilder::default();
|
||||
builder.push(Request::HeaderProof(IncompleteHeaderProofRequest {
|
||||
num: 100.into(), // header proof puts hash at output 0.
|
||||
})).unwrap();
|
||||
builder.push(Request::Receipts(IncompleteReceiptsRequest {
|
||||
hash: Field::BackReference(0, 0),
|
||||
})).unwrap();
|
||||
}
|
||||
}
|
||||
|
@ -649,7 +649,7 @@ pub mod header_proof {
|
||||
}
|
||||
|
||||
fn note_outputs<F>(&self, mut note: F) where F: FnMut(usize, OutputKind) {
|
||||
note(1, OutputKind::Hash);
|
||||
note(0, OutputKind::Hash);
|
||||
}
|
||||
|
||||
fn fill<F>(self, oracle: F) -> Result<Self::Complete, NoSuchOutput>
|
||||
@ -691,7 +691,7 @@ pub mod header_proof {
|
||||
impl Response {
|
||||
/// Fill reusable outputs by providing them to the function.
|
||||
pub fn fill_outputs<F>(&self, mut f: F) where F: FnMut(usize, Output) {
|
||||
f(1, Output::Hash(self.hash));
|
||||
f(0, Output::Hash(self.hash));
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user