1 /*
2 * Copyright 2022 Google LLC
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 #include "fcp/client/federated_protocol_util.h"
17
18 #include <string>
19
20 #include "gmock/gmock.h"
21 #include "gtest/gtest.h"
22 #include "fcp/client/diag_codes.pb.h"
23 #include "fcp/client/test_helpers.h"
24 #include "fcp/testing/testing.h"
25
26 namespace fcp::client {
27 namespace {
28
29 using ::testing::StrictMock;
30
TEST(ExtractTaskNameFromAggregationSessionIdTest,ExtractSuccessfully)31 TEST(ExtractTaskNameFromAggregationSessionIdTest, ExtractSuccessfully) {
32 StrictMock<MockLogManager> mock_log_manager_;
33 EXPECT_EQ(ExtractTaskNameFromAggregationSessionId(
34 "population_name/task_name#foo.bar", "population_name",
35 mock_log_manager_),
36 "task_name");
37 EXPECT_EQ(
38 ExtractTaskNameFromAggregationSessionId(
39 "population_name/task_name#", "population_name", mock_log_manager_),
40 "task_name");
41 EXPECT_EQ(ExtractTaskNameFromAggregationSessionId(
42 "population_name/task_name#foobar", "population_name",
43 mock_log_manager_),
44 "task_name");
45 EXPECT_EQ(ExtractTaskNameFromAggregationSessionId(
46 "population/name/task_name#foo.bar", "population/name",
47 mock_log_manager_),
48 "task_name");
49 EXPECT_EQ(ExtractTaskNameFromAggregationSessionId(
50 "population/name/task/name#foo.bar", "population/name",
51 mock_log_manager_),
52 "task/name");
53 EXPECT_EQ(ExtractTaskNameFromAggregationSessionId(
54 "population_name/task/name#foo.bar", "population_name",
55 mock_log_manager_),
56 "task/name");
57 }
58
TEST(ExtractTaskNameFromAggregationSessionIdTest,ExtractUnsuccessfully)59 TEST(ExtractTaskNameFromAggregationSessionIdTest, ExtractUnsuccessfully) {
60 {
61 StrictMock<MockLogManager> mock_log_manager_;
62 EXPECT_CALL(mock_log_manager_,
63 LogDiag(ProdDiagCode::OPSTATS_TASK_NAME_EXTRACTION_FAILED));
64 EXPECT_EQ(ExtractTaskNameFromAggregationSessionId("foo", "population_name",
65 mock_log_manager_),
66 "foo");
67 }
68 {
69 StrictMock<MockLogManager> mock_log_manager_;
70 EXPECT_CALL(mock_log_manager_,
71 LogDiag(ProdDiagCode::OPSTATS_TASK_NAME_EXTRACTION_FAILED));
72 EXPECT_EQ(
73 ExtractTaskNameFromAggregationSessionId(
74 "population_name2/foo#bar", "population_name", mock_log_manager_),
75 "population_name2/foo#bar");
76 }
77 }
78
79 } // namespace
80 } // namespace fcp::client
81