| // Copyright 2018 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "peridot/lib/firebase_auth/testing/credentials.h" |
| |
| #include "gtest/gtest.h" |
| #include "peridot/lib/firebase_auth/testing/service_account_test_constants.h" |
| |
| namespace service_account { |
| namespace { |
| |
| TEST(CredentialsTest, CorrectConfig) { |
| auto config = Credentials::Parse(kTestServiceAccountConfig); |
| EXPECT_TRUE(config); |
| |
| EXPECT_EQ(kTestServiceAccountProjectId, config->project_id()); |
| EXPECT_EQ(kTestServiceAccountClientEmail, config->client_email()); |
| EXPECT_EQ(kTestServiceAccountClientId, config->client_id()); |
| } |
| |
| TEST(CredentialsTest, IncorrectConfig) { |
| EXPECT_FALSE(Credentials::Parse("")); |
| EXPECT_FALSE(Credentials::Parse("{}")); |
| EXPECT_FALSE(Credentials::Parse(kWrongKeyTestServiceAccountConfig)); |
| } |
| |
| TEST(CredentialsTest, Clone) { |
| auto config = Credentials::Parse(kTestServiceAccountConfig); |
| ASSERT_TRUE(config); |
| |
| auto cloned_config = config->Clone(); |
| EXPECT_EQ(config->project_id(), cloned_config->project_id()); |
| EXPECT_EQ(config->client_email(), cloned_config->client_email()); |
| EXPECT_EQ(config->client_id(), cloned_config->client_id()); |
| |
| EXPECT_EQ(1, EVP_PKEY_cmp(config->private_key().get(), |
| cloned_config->private_key().get())); |
| } |
| |
| } // namespace |
| } // namespace service_account |