box-open-sdk 0.3.1

Box API client for Rust (open source, community, punk rock) — typed models, async managers, and a reqwest runtime with retry, backoff, and token refresh.
Documentation
// Code generated by box-gantry. DO NOT EDIT.

//! Per-union round-trip tests: known-tag dispatch (with discriminator
//! survival on re-serialize) and open-union unknown retention /
//! closed-union rejection (VR-4).

#[test]
fn schemas_ai_agent_round_trip() {
    use crate::models::schemas::AiAgent as U;
    let doc = "{\"type\":\"ai_agent_ask\"}";
    let known: U = serde_json::from_str(doc).unwrap();
    assert!(matches!(known, U::AiAgentAsk(_)));
    let out: serde_json::Value = serde_json::to_value(&known).unwrap();
    let tag = out.get("type").and_then(|v| v.as_str());
    assert_eq!(tag, Some("ai_agent_ask"));
    let raw = "{\"type\":\"__gantry_unknown__\"}";
    let unknown: U = serde_json::from_str(raw).unwrap();
    assert!(matches!(unknown, U::Unknown(_)));
}

#[test]
fn schemas_ai_agent_allowed_entity_round_trip() {
    use crate::models::schemas::AiAgentAllowedEntity as U;
    let raw = "{\"type\":\"__gantry_unknown__\"}";
    let unknown: U = serde_json::from_str(raw).unwrap();
    assert!(matches!(unknown, U::Unknown(_)));
}

#[test]
fn schemas_ai_ask_agent_round_trip() {
    use crate::models::schemas::AiAskAgent as U;
    let raw = "{\"type\":\"__gantry_unknown__\"}";
    let unknown: U = serde_json::from_str(raw).unwrap();
    assert!(matches!(unknown, U::Unknown(_)));
}

#[test]
fn schemas_ai_extract_agent_round_trip() {
    use crate::models::schemas::AiExtractAgent as U;
    let raw = "{\"type\":\"__gantry_unknown__\"}";
    let unknown: U = serde_json::from_str(raw).unwrap();
    assert!(matches!(unknown, U::Unknown(_)));
}

#[test]
fn schemas_ai_extract_structured_agent_round_trip() {
    use crate::models::schemas::AiExtractStructuredAgent as U;
    let raw = "{\"type\":\"__gantry_unknown__\"}";
    let unknown: U = serde_json::from_str(raw).unwrap();
    assert!(matches!(unknown, U::Unknown(_)));
}

#[test]
fn schemas_ai_llm_endpoint_params_round_trip() {
    use crate::models::schemas::AiLlmEndpointParams as U;
    let doc = "{\"type\":\"openai_params\"}";
    let known: U = serde_json::from_str(doc).unwrap();
    assert!(matches!(known, U::OpenaiParams(_)));
    let out: serde_json::Value = serde_json::to_value(&known).unwrap();
    let tag = out.get("type").and_then(|v| v.as_str());
    assert_eq!(tag, Some("openai_params"));
    let raw = "{\"type\":\"__gantry_unknown__\"}";
    let unknown: U = serde_json::from_str(raw).unwrap();
    assert!(matches!(unknown, U::Unknown(_)));
}

#[test]
fn schemas_ai_taxonomy_source_round_trip() {
    use crate::models::schemas::AiTaxonomySource as U;
    let doc = "{\"type\":\"taxonomy\"}";
    let known: U = serde_json::from_str(doc).unwrap();
    assert!(matches!(known, U::Taxonomy(_)));
    let out: serde_json::Value = serde_json::to_value(&known).unwrap();
    let tag = out.get("type").and_then(|v| v.as_str());
    assert_eq!(tag, Some("taxonomy"));
    let raw = "{\"type\":\"__gantry_unknown__\"}";
    let unknown: U = serde_json::from_str(raw).unwrap();
    assert!(matches!(unknown, U::Unknown(_)));
}

#[test]
fn schemas_ai_text_gen_agent_round_trip() {
    use crate::models::schemas::AiTextGenAgent as U;
    let raw = "{\"type\":\"__gantry_unknown__\"}";
    let unknown: U = serde_json::from_str(raw).unwrap();
    assert!(matches!(unknown, U::Unknown(_)));
}

#[test]
fn schemas_app_item_associated_item_round_trip() {
    use crate::models::schemas::AppItemAssociatedItem as U;
    let raw = "{\"type\":\"__gantry_unknown__\"}";
    let unknown: U = serde_json::from_str(raw).unwrap();
    assert!(matches!(unknown, U::Unknown(_)));
}

#[test]
fn schemas_collaboration_access_grantee_round_trip() {
    use crate::models::schemas::CollaborationAccessGrantee as U;
    let raw = "{\"type\":\"__gantry_unknown__\"}";
    let unknown: U = serde_json::from_str(raw).unwrap();
    assert!(matches!(unknown, U::Unknown(_)));
}

#[test]
fn schemas_collaboration_item_round_trip() {
    use crate::models::schemas::CollaborationItem as U;
    let raw = "{\"type\":\"__gantry_unknown__\"}";
    let unknown: U = serde_json::from_str(raw).unwrap();
    assert!(matches!(unknown, U::Unknown(_)));
}

#[test]
fn schemas_item_round_trip() {
    use crate::models::schemas::Item as U;
    let raw = "{\"type\":\"__gantry_unknown__\"}";
    let unknown: U = serde_json::from_str(raw).unwrap();
    assert!(matches!(unknown, U::Unknown(_)));
}

#[test]
fn schemas_metadata_query_result_item_round_trip() {
    use crate::models::schemas::MetadataQueryResultItem as U;
    let raw = "{\"type\":\"__gantry_unknown__\"}";
    let unknown: U = serde_json::from_str(raw).unwrap();
    assert!(matches!(unknown, U::Unknown(_)));
}

#[test]
fn schemas_recent_item_resource_round_trip() {
    use crate::models::schemas::RecentItemResource as U;
    let raw = "{\"type\":\"__gantry_unknown__\"}";
    let unknown: U = serde_json::from_str(raw).unwrap();
    assert!(matches!(unknown, U::Unknown(_)));
}

#[test]
fn schemas_resource_round_trip() {
    use crate::models::schemas::Resource as U;
    let raw = "{\"type\":\"__gantry_unknown__\"}";
    let unknown: U = serde_json::from_str(raw).unwrap();
    assert!(matches!(unknown, U::Unknown(_)));
}

#[test]
fn schemas_search_result_item_round_trip() {
    use crate::models::schemas::SearchResultItem as U;
    let raw = "{\"type\":\"__gantry_unknown__\"}";
    let unknown: U = serde_json::from_str(raw).unwrap();
    assert!(matches!(unknown, U::Unknown(_)));
}

#[test]
fn schemas_search_results_response_round_trip() {
    use crate::models::schemas::SearchResultsResponse as U;
    let doc = "{\"type\":\"search_results_items\"}";
    let known: U = serde_json::from_str(doc).unwrap();
    assert!(matches!(known, U::SearchResultsItems(_)));
    let out: serde_json::Value = serde_json::to_value(&known).unwrap();
    let tag = out.get("type").and_then(|v| v.as_str());
    assert_eq!(tag, Some("search_results_items"));
    let raw = "{\"type\":\"__gantry_unknown__\"}";
    let unknown: U = serde_json::from_str(raw).unwrap();
    assert!(matches!(unknown, U::Unknown(_)));
}

#[test]
fn schemas_search_result_with_shared_link_item_round_trip() {
    use crate::models::schemas::SearchResultWithSharedLinkItem as U;
    let raw = "{\"type\":\"__gantry_unknown__\"}";
    let unknown: U = serde_json::from_str(raw).unwrap();
    assert!(matches!(unknown, U::Unknown(_)));
}

#[test]
fn schemas_hub_access_grantee_round_trip() {
    use crate::models::schemas::HubAccessGrantee as U;
    let raw = "{\"type\":\"__gantry_unknown__\"}";
    let unknown: U = serde_json::from_str(raw).unwrap();
    assert!(matches!(unknown, U::Unknown(_)));
}

#[test]
fn schemas_hub_document_block_entry_round_trip() {
    use crate::models::schemas::HubDocumentBlockEntry as U;
    let raw = "{\"type\":\"__gantry_unknown__\"}";
    let unknown: U = serde_json::from_str(raw).unwrap();
    assert!(matches!(unknown, U::Unknown(_)));
}

#[test]
fn schemas_hub_item_reference_round_trip() {
    use crate::models::schemas::HubItemReference as U;
    let raw = "{\"type\":\"__gantry_unknown__\"}";
    let unknown: U = serde_json::from_str(raw).unwrap();
    assert!(matches!(unknown, U::Unknown(_)));
}

#[test]
fn schemas_shield_list_content_round_trip() {
    use crate::models::schemas::ShieldListContent as U;
    let raw = "{\"type\":\"__gantry_unknown__\"}";
    let unknown: U = serde_json::from_str(raw).unwrap();
    assert!(matches!(unknown, U::Unknown(_)));
}

#[test]
fn schemas_shield_list_content_request_round_trip() {
    use crate::models::schemas::ShieldListContentRequest as U;
    let raw = "{\"type\":\"__gantry_unknown__\"}";
    let unknown: U = serde_json::from_str(raw).unwrap();
    assert!(matches!(unknown, U::Unknown(_)));
}