userver: /data/code/userver/libraries/s3api/src/s3api/s3_connection_test.cpp Source File
Loading...
Searching...
No Matches
s3_connection_test.cpp
1#include <s3api/s3_connection.hpp>
2
3#include <userver/utest/utest.hpp>
4
5USERVER_NAMESPACE_BEGIN
6
7namespace s3api {
8
9namespace {
10
11TEST(S3ConnectionHostHeader, BareHostWithBucket) {
12 // Продовый случай: api_url_ — голый хост, virtual-host адресация.
13 EXPECT_EQ(S3Connection::MakeHostHeader("s3.mds.yandex.net", "mybucket"), "mybucket.s3.mds.yandex.net");
14}
15
16TEST(S3ConnectionHostHeader, BareHostWithoutBucket) {
17 EXPECT_EQ(S3Connection::MakeHostHeader("s3.mds.yandex.net", ""), "s3.mds.yandex.net");
18}
19
20TEST(S3ConnectionHostHeader, LocalhostWithSchemeAndBucket) {
21 // Тестовый endpoint на mockserver: схему и путь отбрасываем, но bucket
22 // сохраняем — mock определяет его по Host (virtual-host).
23 EXPECT_EQ(S3Connection::MakeHostHeader("http://localhost:41871/s3mds", "bucket"), "bucket.localhost:41871");
24}
25
26TEST(S3ConnectionHostHeader, LocalhostWithSchemeAndPathWithoutBucket) {
27 // Bucket пуст, имя мока зашито в путь endpoint (кейс fintech): остаётся
28 // только authority.
29 EXPECT_EQ(S3Connection::MakeHostHeader("http://localhost:41507/risk-collection-ui", ""), "localhost:41507");
30}
31
32TEST(S3ConnectionHostHeader, RemoteHostWithScheme) {
33 EXPECT_EQ(S3Connection::MakeHostHeader("http://s3.example.com", "bucket"), "bucket.s3.example.com");
34}
35
36TEST(S3ConnectionHostHeader, RemoteHostWithSchemeAndPath) {
37 EXPECT_EQ(S3Connection::MakeHostHeader("https://s3.example.com/prefix", "bucket"), "bucket.s3.example.com");
38}
39
40} // namespace
41
42} // namespace s3api
43
44USERVER_NAMESPACE_END