orientdb-client 0.6.0

A Rust client for OrientDB™
Documentation
mod common;

use common::config;

use orientdb_client::common::protocol::messages::request::Open;
use orientdb_client::sync::network::conn::Connection;

#[test]
fn test_connection_connect_close() {
    let config = config();
    let addr = config.address.parse().unwrap();

    let res = Connection::connect(&addr);
    assert!(res.is_ok());

    let mut c = res.unwrap();
    let res = c.close();
    assert!(res.is_ok());
}

#[test]
fn test_connection_wrong_address() {
    let addr = "127.0.0.1:3333".parse().unwrap();
    let conn = Connection::connect(&addr);

    assert!(conn.is_err());
}

#[test]
fn test_connection_send_open_wrong_db() {
    let config = config();
    let addr = config.address.parse().unwrap();

    let res = Connection::connect(&addr);
    assert!(res.is_ok());

    let mut conn = res.unwrap();

    let res = conn.send(
        Open {
            db: String::from("wrong_database"),
            username: config.username,
            password: config.password,
        }
        .into(),
    );
    assert!(res.is_err());
    let err = res.unwrap_err();

    assert!(err.to_string().contains("Request error: Cannot open"));
}

#[cfg(feature = "async")]
mod asynchronous {

    use super::config;

    use orientdb_client::asynchronous::network::Connection;
    use orientdb_client::common::protocol::messages::request::Open;
    use orientdb_client::OrientResult;

    #[cfg_attr(feature = "async-std-runtime", async_std::test)]
    #[cfg_attr(feature = "tokio-runtime", tokio::test)]
    async fn test_connection_connect_close() -> OrientResult<()> {
        let config = config();
        let addr = config.address.parse().unwrap();

        let res = Connection::connect(&addr).await;

        assert!(res.is_ok());

        let c = res.unwrap();
        let res = c.close().await;
        assert!(res.is_ok());

        Ok(())
    }

    #[cfg_attr(feature = "async-std-runtime", async_std::test)]
    #[cfg_attr(feature = "tokio-runtime", tokio::test)]
    async fn test_connection_wrong_address() -> OrientResult<()> {
        let addr = "127.0.0.1:3333".parse().unwrap();

        let conn = Connection::connect(&addr).await;
        assert!(conn.is_err());
        Ok(())
    }

    #[cfg_attr(feature = "async-std-runtime", async_std::test)]
    #[cfg_attr(feature = "tokio-runtime", tokio::test)]
    async fn test_connection_send_open_wrong_db() -> OrientResult<()> {
        let config = config();
        let addr = config.address.parse().unwrap();

        let res = Connection::connect(&addr).await;
        assert!(res.is_ok());

        let mut conn = res.unwrap();

        let res = conn
            .send(
                Open {
                    db: String::from("wrong_database"),
                    username: config.username,
                    password: config.password,
                }
                .into(),
            )
            .await;

        assert!(res.is_err());
        let err = res.unwrap_err();

        assert!(err.to_string().contains("Request error: Cannot open"));
        Ok(())
    }
}