xref: /aosp_15_r20/external/federated-compute/fcp/client/federated_protocol_util_test.cc (revision 14675a029014e728ec732f129a32e299b2da0601)
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