@@ -519,6 +519,46 @@ TEST(PatchBucketRequestTest, DiffSetIpFilterMultipleCidrRanges) {
519519 EXPECT_EQ (expected, patch);
520520}
521521
522+ TEST (PatchBucketRequestTest, DiffSetIpFilterMultipleCidrRangesAndNetworks) {
523+ BucketMetadata original = CreateBucketMetadataForTest ();
524+ original.reset_ip_filter ();
525+ BucketMetadata updated = original;
526+ BucketIpFilter ip_filter;
527+ ip_filter.mode = " Enabled" ;
528+ ip_filter.allow_all_service_agent_access = true ;
529+ ip_filter.allow_cross_org_vpcs = true ;
530+ ip_filter.public_network_source =
531+ BucketIpFilterPublicNetworkSource{{" 1.2.3.4/32" }};
532+ ip_filter.vpc_network_sources =
533+ absl::make_optional<std::vector<BucketIpFilterVpcNetworkSource>>(
534+ {BucketIpFilterVpcNetworkSource{" projects/p/global/networks/n" ,
535+ {" 5.6.7.8/32" , " 8.7.6.5/32" }},
536+ BucketIpFilterVpcNetworkSource{" projects/p/global/networks/m" ,
537+ {" 9.0.1.2/32" }}});
538+ updated.set_ip_filter (std::move (ip_filter));
539+ PatchBucketRequest request (" test-bucket" , original, updated);
540+
541+ auto patch = nlohmann::json::parse (request.payload ());
542+ auto expected = nlohmann::json::parse (R"""( {
543+ "ipFilter": {
544+ "mode": "Enabled",
545+ "allowAllServiceAgentAccess": true,
546+ "allowCrossOrgVpcs": true,
547+ "publicNetworkSource": {
548+ "allowedIpCidrRanges": ["1.2.3.4/32"]
549+ },
550+ "vpcNetworkSources": [{
551+ "network": "projects/p/global/networks/n",
552+ "allowedIpCidrRanges": ["5.6.7.8/32", "8.7.6.5/32"]
553+ }, {
554+ "network": "projects/p/global/networks/m",
555+ "allowedIpCidrRanges": ["9.0.1.2/32"]
556+ }]
557+ }
558+ })""" );
559+ EXPECT_EQ (expected, patch);
560+ }
561+
522562TEST (PatchBucketRequestTest, DiffResetIpFilter) {
523563 BucketMetadata original = CreateBucketMetadataForTest ();
524564 original.set_ip_filter (BucketIpFilter{});
0 commit comments