xref: /aosp_15_r20/external/federated-compute/fcp/client/testing/utils_test.cc (revision 14675a029014e728ec732f129a32e299b2da0601)
1 #include "fcp/client/testing/utils.h"
2 
3 #include <string>
4 
5 #include "gtest/gtest.h"
6 #include "absl/status/statusor.h"
7 #include "fcp/protos/plan.pb.h"
8 
9 namespace fcp::client::testing {
10 namespace {
11 
12 using google::internal::federated::plan::Dataset;
13 
14 // The fixture for testing class Foo.
15 class TestExampleIteratorTest : public ::testing::Test {};
16 
TEST_F(TestExampleIteratorTest,NextCallsForEmptyDatset)17 TEST_F(TestExampleIteratorTest, NextCallsForEmptyDatset) {
18   Dataset::ClientDataset client_dataset;
19 
20   TestExampleIterator iterator(&client_dataset);
21 
22   absl::StatusOr<std::string> element;
23 
24   element = iterator.Next();
25   EXPECT_FALSE(element.ok());
26 
27   element = iterator.Next();
28   EXPECT_FALSE(element.ok());
29 
30   element = iterator.Next();
31   EXPECT_FALSE(element.ok());
32 }
33 
TEST_F(TestExampleIteratorTest,NextCallsForSingleElementDataset)34 TEST_F(TestExampleIteratorTest, NextCallsForSingleElementDataset) {
35   Dataset::ClientDataset client_dataset;
36   client_dataset.add_example("abc");
37 
38   TestExampleIterator iterator(&client_dataset);
39 
40   absl::StatusOr<std::string> element;
41 
42   element = iterator.Next();
43   ASSERT_TRUE(element.ok());
44   EXPECT_EQ(element.value(), "abc");
45 
46   element = iterator.Next();
47   EXPECT_FALSE(element.ok());
48 
49   element = iterator.Next();
50   EXPECT_FALSE(element.ok());
51 }
52 
53 // Tests that the Foo::Bar() method does Abc.
TEST_F(TestExampleIteratorTest,NextCallsForThreeElementDataset)54 TEST_F(TestExampleIteratorTest, NextCallsForThreeElementDataset) {
55   Dataset::ClientDataset client_dataset;
56   client_dataset.add_example("a");
57   client_dataset.add_example("b");
58   client_dataset.add_example("c");
59 
60   TestExampleIterator iterator(&client_dataset);
61 
62   absl::StatusOr<std::string> element;
63 
64   element = iterator.Next();
65   ASSERT_TRUE(element.ok());
66   EXPECT_EQ(element.value(), "a");
67 
68   element = iterator.Next();
69   ASSERT_TRUE(element.ok());
70   EXPECT_EQ(element.value(), "b");
71 
72   element = iterator.Next();
73   ASSERT_TRUE(element.ok());
74   EXPECT_EQ(element.value(), "c");
75 
76   element = iterator.Next();
77   EXPECT_FALSE(element.ok());
78 
79   element = iterator.Next();
80   EXPECT_FALSE(element.ok());
81 }
82 
83 }  // namespace
84 }  // namespace fcp::client::testing
85 
main(int argc,char ** argv)86 int main(int argc, char **argv) {
87   ::testing::InitGoogleTest(&argc, argv);
88   return RUN_ALL_TESTS();
89 }
90