@@ -519,6 +519,46 @@ TEST(PatchBucketRequestTest, DiffSetIpFilterMultipleCidrRanges) {
519
519
EXPECT_EQ (expected, patch);
520
520
}
521
521
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
+
522
562
TEST (PatchBucketRequestTest, DiffResetIpFilter) {
523
563
BucketMetadata original = CreateBucketMetadataForTest ();
524
564
original.set_ip_filter (BucketIpFilter{});
0 commit comments