use cryptol_client::CryptolClient;
#[test]
fn test_connect() {
let cryptol_client = CryptolClient::connect();
assert!(cryptol_client.is_ok());
}
#[test]
fn test_load_module_success() {
let mut cryptol_client = match CryptolClient::connect() {
Ok(c) => c,
Err(e) => panic!("An error occurred while connecting to cryptol-remote-api: {e}"),
};
match cryptol_client.load_module("SuiteB") {
Ok(_) => (),
Err(e) => panic!("Loading module failed: {e}"),
};
}
#[test]
fn test_load_module_failure() {
let mut cryptol_client = match CryptolClient::connect() {
Ok(c) => c,
Err(e) => panic!("An error occurred while connecting to cryptol-remote-api: {e}"),
};
assert!(
cryptol_client.load_module("nosuchmodule").is_err(),
"nosuchmodule should not exist"
);
}
#[test]
fn test_call_success() {
let mut cryptol_client = match CryptolClient::connect() {
Ok(c) => c,
Err(e) => panic!("An error occurred while connecting to cryptol-remote-api: {e}"),
};
let function = "reverse";
let arguments = ["[1, 2, 3, 4]"];
match cryptol_client.call(function, &arguments) {
Ok(r) => r,
Err(e) => panic!("An error occured while calling cryptol-remote-api: {e}"),
};
}
#[test]
fn test_call_failure() {
let mut cryptol_client = match CryptolClient::connect() {
Ok(c) => c,
Err(e) => panic!("An error occurred while connecting to cryptol-remote-api: {e}"),
};
let function = "nonsense";
let arguments = ["[1, 2, 3, 4]"];
assert!(
cryptol_client.call(function, &arguments).is_err(),
"'nonsense' should not be a function in the Cryptol prelude"
);
}