fn test_parse_one_drive_list_response_json()

in core/src/services/onedrive/graph_model.rs [183:251]


    fn test_parse_one_drive_list_response_json() {
        let data = r#"{
            "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('opendal@outlook.com')/drive/root/children(id,name,lastModifiedDateTime,eTag,size,parentReference,folder,file)",
            "value": [
                {
                    "@odata.etag": "\"{3B131E1C-7D81-20AF-80D0-450D00000000},10\"",
                    "eTag": "\"{3B131E1C-7D81-20AF-80D0-450D00000000},10\"",
                    "id": "A0AA0A000A000A0A!3397",
                    "lastModifiedDateTime": "2025-02-23T11:45:26Z",
                    "name": "empty_folder",
                    "size": 0,
                    "parentReference": {
                        "driveType": "personal",
                        "driveId": "A0AA0A000A000A0A",
                        "id": "A0AA0A000A000A0A!sea8cc6beffdb43d7976fbc7da445c639",
                        "name": "Documents",
                        "path": "/drive/root:",
                        "siteId": "5f1f11f3-a6b4-4414-aee0-215c774f80db"
                    },
                    "folder": {
                        "childCount": 0,
                        "view": {
                            "sortBy": "name",
                            "sortOrder": "ascending",
                            "viewType": "thumbnails"
                        }
                    }
                },
                {
                    "@odata.etag": "\"{3B131E1C-7D81-20AF-80D0-710000000000},6\"",
                    "eTag": "\"{3B131E1C-7D81-20AF-80D0-710000000000},6\"",
                    "id": "A0AA0A000A000A0A!113",
                    "lastModifiedDateTime": "2025-02-16T19:48:39Z",
                    "name": "folder_a",
                    "size": 10560537,
                    "parentReference": {
                        "driveType": "personal",
                        "driveId": "A0AA0A000A000A0A",
                        "id": "A0AA0A000A000A0A!sea8cc6beffdb43d7976fbc7da445c639",
                        "name": "Documents",
                        "path": "/drive/root:",
                        "siteId": "5f1f11f3-a6b4-4414-aee0-215c774f80db"
                    },
                    "folder": {
                        "childCount": 5,
                        "view": {
                            "sortBy": "name",
                            "sortOrder": "ascending",
                            "viewType": "thumbnails"
                        }
                    }
                }
            ]
        }"#;

        let response: GraphApiOneDriveListResponse = serde_json::from_str(data).unwrap();
        assert_eq!(response.value.len(), 2);
        let item = &response.value[0];
        assert_eq!(item.name, "empty_folder");
        assert_eq!(item.last_modified_date_time, "2025-02-23T11:45:26Z");
        assert_eq!(item.e_tag, "\"{3B131E1C-7D81-20AF-80D0-450D00000000},10\"");
        assert_eq!(item.size, 0);
        assert_eq!(item.parent_reference.path, "/drive/root:");
        if let ItemType::Folder { folder, .. } = &item.item_type {
            assert_eq!(folder.child_count, 0);
        } else {
            panic!("item_type is not a folder");
        }
    }