mod test_helpers;
use test_helpers::{CampaignBuilder, GoogleAdsRowBuilder};
#[test]
fn test_format_compact_single_field() {
let campaign = CampaignBuilder::new().id(12345).build();
let row = GoogleAdsRowBuilder::new().with_campaign(campaign).build();
let result = row.get("campaign.id");
assert_eq!(result, "12345");
}
#[test]
fn test_format_compact_multiple_fields() {
let campaign = CampaignBuilder::new()
.id(12345)
.name("Test Campaign")
.build();
let row = GoogleAdsRowBuilder::new().with_campaign(campaign).build();
assert_eq!(row.get("campaign.id"), "12345");
assert_eq!(row.get("campaign.name"), "Test Campaign");
}
#[test]
fn test_format_compact_empty_message() {
let campaign = CampaignBuilder::new().build();
let row = GoogleAdsRowBuilder::new().with_campaign(campaign).build();
assert_eq!(row.get("campaign.name"), "");
}
#[test]
fn test_format_compact_partial_fields() {
let campaign = CampaignBuilder::new()
.id(12345)
.build();
let row = GoogleAdsRowBuilder::new().with_campaign(campaign).build();
assert_eq!(row.get("campaign.id"), "12345");
assert_eq!(row.get("campaign.name"), "");
}
#[test]
fn test_format_compact_nested_message() {
let campaign = CampaignBuilder::new()
.id(12345)
.with_network_settings(true, false, true, false)
.build();
let row = GoogleAdsRowBuilder::new().with_campaign(campaign).build();
assert_eq!(
row.get("campaign.network_settings.target_search_network"),
"true"
);
assert_eq!(
row.get("campaign.network_settings.target_content_network"),
"false"
);
assert_eq!(
row.get("campaign.network_settings.target_partner_search_network"),
"true"
);
assert_eq!(
row.get("campaign.network_settings.target_google_search"),
"false"
);
}
#[test]
fn test_format_compact_deeply_nested_path() {
let campaign = CampaignBuilder::new()
.id(12345)
.with_network_settings(true, true, true, true)
.build();
let row = GoogleAdsRowBuilder::new().with_campaign(campaign).build();
let result = row.get("campaign.network_settings");
assert_eq!(result, "not implemented by googleads-rs");
}
#[test]
fn test_format_compact_with_enum_fields() {
use googleads_rs::google::ads::googleads::v23::enums::campaign_status_enum::CampaignStatus;
let campaign = CampaignBuilder::new()
.id(12345)
.status(CampaignStatus::Enabled)
.build();
let row = GoogleAdsRowBuilder::new().with_campaign(campaign).build();
assert_eq!(row.get("campaign.status"), "ENABLED");
}
#[test]
fn test_format_compact_with_optional_absent() {
let row = GoogleAdsRowBuilder::new().build();
assert_eq!(
row.get("campaign.network_settings.target_search_network"),
""
);
}