lisk-api-rust-client 0.1.0

Rust API Client for LISK Blockchain
Documentation
extern crate lisk_api_rust_client;
extern crate mockito;
extern crate serde_json;

mod api;
mod connection;

use mockito::{mock, Matcher, Mock};
use std::fs::File;
use std::io::prelude::*;

use lisk_api_rust_client::Connection;

const MOCK_HOST: &str = "http://127.0.0.1:1234/api/";

pub fn mock_http_request(endpoint: &str) -> (Mock, String) {
    let url = Matcher::Regex(endpoint.to_owned());
    let response_body = read_fixture(&endpoint);

    let mock = mock("GET", url)
        .with_status(200)
        .with_header("content-type", "application/json")
        .with_body(&response_body)
        .create();

    (mock, response_body.to_owned())
}

pub fn mock_client() -> Connection {
    Connection::new(&MOCK_HOST)
}

fn read_fixture(endpoint: &str) -> String {
    let fixture_name = endpoint.replace("/", "-") + ".json";
    let mut file = File::open(format!("tests/fixtures/{}", fixture_name)).unwrap();
    let mut response_body = String::new();
    file.read_to_string(&mut response_body).unwrap();

    response_body
}