centraldogma 0.1.2

CentralDogma client for Rust
Documentation
use cd::ProjectService;
use centraldogma as cd;

#[cfg(test)]
#[tokio::test]
async fn test_projects() {
    let client = cd::Client::new("http://localhost:36462", None)
        .await
        .unwrap();
    let projects = client
        .list_projects()
        .await
        .expect("Failed to list projects");
    assert_eq!(0, projects.len());

    let invalid_prj_name = "Test Project";
    let invalid_new_project = client.create_project(invalid_prj_name).await;
    assert!(matches!(invalid_new_project, Err(_)));

    let prj_name = "TestProject";
    let new_project = client
        .create_project(prj_name)
        .await
        .expect("Failed to create new project");
    assert_eq!(prj_name, new_project.name);

    let projects = client
        .list_projects()
        .await
        .expect("Failed to list projects");
    assert_eq!(1, projects.len());
    assert_eq!(prj_name, projects[0].name);

    client
        .remove_project(prj_name)
        .await
        .expect("Failed to remove the project");

    let removed_projects = client
        .list_removed_projects()
        .await
        .expect("Failed to list removed projects");
    assert_eq!(1, removed_projects.len());
    assert_eq!(prj_name, removed_projects[0]);

    let unremove_project = client
        .unremove_project(prj_name)
        .await
        .expect("Failed to unremove project");
    assert_eq!(prj_name, unremove_project.name);

    client
        .remove_project(prj_name)
        .await
        .expect("Failed to remove the project again");

    client
        .purge_project(prj_name)
        .await
        .expect("Failed to purge the project");
}