use open_lark::prelude::*;
use open_lark::service::workplace::models::*;
#[tokio::test]
async fn test_builder_basic_functionality() {
let request = AccessDataSearchRequest::builder()
.page_size(50)
.start_time(1609459200)
.end_time(1640995200)
.build();
assert_eq!(request.page_size, Some(50));
assert_eq!(request.start_time, Some(1609459200));
assert_eq!(request.end_time, Some(1640995200));
}
#[tokio::test]
async fn test_builder_compound_methods() {
let request = AccessDataSearchRequest::builder()
.time_range(1609459200, 1640995200) .pagination(Some("token".to_string()), Some(20)) .build();
assert_eq!(request.start_time, Some(1609459200));
assert_eq!(request.end_time, Some(1640995200));
assert_eq!(request.page_token, Some("token".to_string()));
assert_eq!(request.page_size, Some(20));
}
#[tokio::test]
async fn test_builder_convenience_methods() {
let request = AccessDataSearchRequest::builder()
.user_filter("user123") .department_filter("dept456") .access_type_filter("view") .build();
assert_eq!(request.user_id, Some("user123".to_string()));
assert_eq!(request.department_id, Some("dept456".to_string()));
assert_eq!(request.access_type, Some("view".to_string()));
}
#[tokio::test]
async fn test_builder_equivalence_with_traditional() {
let traditional = AccessDataSearchRequest {
page_token: Some("token".to_string()),
page_size: Some(25),
start_time: Some(1609459200),
end_time: Some(1640995200),
user_id: Some("user789".to_string()),
department_id: None,
access_type: Some("edit".to_string()),
};
let builder_made = AccessDataSearchRequest::builder()
.page_token("token")
.page_size(25)
.time_range(1609459200, 1640995200)
.user_filter("user789")
.access_type_filter("edit")
.build();
assert_eq!(traditional.page_token, builder_made.page_token);
assert_eq!(traditional.page_size, builder_made.page_size);
assert_eq!(traditional.start_time, builder_made.start_time);
assert_eq!(traditional.end_time, builder_made.end_time);
assert_eq!(traditional.user_id, builder_made.user_id);
assert_eq!(traditional.department_id, builder_made.department_id);
assert_eq!(traditional.access_type, builder_made.access_type);
}
#[tokio::test]
async fn test_builder_type_conversions() {
let request1 = AccessDataSearchRequest::builder()
.user_filter("string_literal") .build();
let request2 = AccessDataSearchRequest::builder()
.user_filter("owned_string".to_string()) .build();
assert_eq!(request1.user_id, Some("string_literal".to_string()));
assert_eq!(request2.user_id, Some("owned_string".to_string()));
}