rincon_session 0.1.0

A synchronous session managed client API for the ArangoDB driver
Documentation

#[macro_use] extern crate galvanic_assert;

extern crate tokio_core;

extern crate rincon_core;
extern crate rincon_client;
extern crate rincon_connector;
extern crate rincon_session;
extern crate rincon_test_helper;

use galvanic_assert::matchers::*;

use tokio_core::reactor::Core;

use rincon_core::api::types::Empty;
use rincon_core::api::connector::Execute;
use rincon_connector::http::JsonHttpConnector;
use rincon_client::database::methods::DropDatabase;
use rincon_session::*;
use rincon_session::client::*;

use rincon_test_helper::*;


#[test]
fn create_database() {
    arango_session_test(|connector, core| {

        let arango = ArangoSession::new(connector, core);

        let database = arango.create_database::<_, Empty>("the_social_network",
            vec![NewUser::with_name("an_user", "a_pass")]).unwrap();

        assert_that!(&database.name(), eq("the_social_network"));
    },
    |conn, ref mut core| {
        let _ = core.run(conn.execute(DropDatabase::with_name("the_social_network")));
    });
}

#[test]
fn use_database() {
    let core = Core::new().unwrap();

    let datasource = system_datasource();
    let connector = JsonHttpConnector::new(datasource, &core.handle()).unwrap();

    let arango = ArangoSession::new(connector, core);

    let database = arango.use_database_with_name("the_social_network");

    assert_that!(&database.name(), eq("the_social_network"));
}