| #include "bmc/gmi_reader.h" |
| |
| #include <cstdio> |
| #include <string> |
| |
| #include "gmi/machine_identity.pb.h" |
| #include "proto_reader.h" |
| #include "gmock/gmock.h" |
| #include "gtest/gtest.h" |
| #include "absl/status/status.h" |
| |
| #include "bmc/test_util.h" |
| |
| namespace { |
| |
| using ::testing::status::StatusIs; |
| |
| using security_prodid::GoogleMachineIdentityProto; |
| |
| // TODO (b/352080861)create a static file for testing, rather than creating a |
| // new file during test. Creating a file during the test, allows us to ignore |
| // the file path that must be correct for static files |
| |
| TEST(gmi_read_test, read_fqdn) { |
| GoogleMachineIdentityProto id; |
| std::string test_fqdn = "jrxi100"; |
| std::string file_name = std::tmpnam(nullptr); |
| id.set_fqdn(test_fqdn); |
| EXPECT_TRUE(proto_reader::WriteProto(file_name, id).ok()); |
| EXPECT_EQ(gmi_reader::ReadGmiHostName(file_name).value(), test_fqdn); |
| } |
| |
| TEST(gmi_empty_string_test, read_fqdn) { |
| GoogleMachineIdentityProto id; |
| std::string test_fqdn = ""; |
| std::string file_name = std::tmpnam(nullptr); |
| id.set_fqdn(test_fqdn); |
| EXPECT_TRUE(proto_reader::WriteProto(file_name, id).ok()); |
| EXPECT_EQ(gmi_reader::ReadGmiHostName(file_name).value(), test_fqdn); |
| } |
| |
| TEST(gmi_file_not_found_test, read_fqdn) { |
| std::string file_name = std::tmpnam(nullptr); |
| absl::Status status = gmi_reader::ReadGmiHostName(file_name).status(); |
| EXPECT_THAT(gmi_reader::ReadGmiHostName(file_name).status(), |
| StatusIs(absl::StatusCode::kInvalidArgument)); |
| } |
| |
| } // namespace |