Skip to content

Commit 7b8b0e3

Browse files
committed
add new test
1 parent ba10fa3 commit 7b8b0e3

File tree

2 files changed

+73
-0
lines changed

2 files changed

+73
-0
lines changed

google/cloud/storage/bucket_ip_filter_test.cc

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,17 @@ TEST(BucketIpFilterTest, VpcNetworkSource) {
5555
EXPECT_NE(source, copy);
5656
}
5757

58+
TEST(BucketIpFilterTest, VpcNetworkSourceOrderMatters) {
59+
BucketIpFilterVpcNetworkSource const source1{"projects/p/global/networks/n",
60+
{"1.2.3.4/32", "5.6.7.8/32"}};
61+
BucketIpFilterVpcNetworkSource const source2{"projects/p/global/networks/n",
62+
{"5.6.7.8/32", "1.2.3.4/32"}};
63+
64+
// The two sources have the same elements but in a different order.
65+
// They should NOT be equal.
66+
EXPECT_NE(source1, source2);
67+
}
68+
5869
TEST(BucketIpFilterTest, IpFilter) {
5970
BucketIpFilter filter;
6071
filter.mode = "Enabled";
@@ -76,6 +87,28 @@ TEST(BucketIpFilterTest, IpFilter) {
7687
EXPECT_NE(filter, copy);
7788
}
7889

90+
TEST(BucketIpFilterTest, IpFilterOrderMatters) {
91+
BucketIpFilter filter1;
92+
filter1.vpc_network_sources =
93+
absl::make_optional<std::vector<BucketIpFilterVpcNetworkSource>>(
94+
{BucketIpFilterVpcNetworkSource{"projects/p/global/networks/n",
95+
{"1.2.3.4/32"}},
96+
BucketIpFilterVpcNetworkSource{"projects/p/global/networks/m",
97+
{"5.6.7.8/32"}}});
98+
99+
BucketIpFilter filter2;
100+
filter2.vpc_network_sources =
101+
absl::make_optional<std::vector<BucketIpFilterVpcNetworkSource>>(
102+
{BucketIpFilterVpcNetworkSource{"projects/p/global/networks/m",
103+
{"5.6.7.8/32"}},
104+
BucketIpFilterVpcNetworkSource{"projects/p/global/networks/n",
105+
{"1.2.3.4/32"}}});
106+
107+
// The two filters have the same elements but in a different order.
108+
// They should NOT be equal.
109+
EXPECT_NE(filter1, filter2);
110+
}
111+
79112
} // namespace
80113
GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END
81114
} // namespace storage

google/cloud/storage/internal/bucket_requests_test.cc

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
522562
TEST(PatchBucketRequestTest, DiffResetIpFilter) {
523563
BucketMetadata original = CreateBucketMetadataForTest();
524564
original.set_ip_filter(BucketIpFilter{});

0 commit comments

Comments
 (0)