blob: 0a3d8b5d09756d0f658de665c7cc6bf3039a4306 [file] [edit]
// Copyright 2026 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
#include "crypto/crypto_read_handler.h"
#include <string>
#include "absl/strings/string_view.h"
#include "gtest/gtest.h"
namespace credentio {
namespace {
TEST(CryptoReadHandlerTest, AbslParseFlagValid) {
CryptoReadHandler::TrustEnvironment trust;
std::string error;
EXPECT_TRUE(AbslParseFlag("prod", &trust, &error));
EXPECT_EQ(trust, CryptoReadHandler::TrustEnvironment::kProd);
EXPECT_TRUE(AbslParseFlag("qual", &trust, &error));
EXPECT_EQ(trust, CryptoReadHandler::TrustEnvironment::kQualOnly);
EXPECT_TRUE(AbslParseFlag("qual_and_prod", &trust, &error));
EXPECT_EQ(trust, CryptoReadHandler::TrustEnvironment::kQualAndProd);
EXPECT_TRUE(AbslParseFlag("dev", &trust, &error));
EXPECT_EQ(trust, CryptoReadHandler::TrustEnvironment::kDevOnly);
EXPECT_TRUE(AbslParseFlag("any", &trust, &error));
EXPECT_EQ(trust, CryptoReadHandler::TrustEnvironment::kAny);
EXPECT_TRUE(error.empty());
}
TEST(CryptoReadHandlerTest, AbslParseFlagInvalid) {
CryptoReadHandler::TrustEnvironment trust;
std::string error;
EXPECT_FALSE(AbslParseFlag("invalid", &trust, &error));
EXPECT_EQ(error, "unknown trust environment");
}
TEST(CryptoReadHandlerTest, AbslUnparseFlag) {
EXPECT_EQ(AbslUnparseFlag(CryptoReadHandler::TrustEnvironment::kProd),
"prod");
EXPECT_EQ(AbslUnparseFlag(CryptoReadHandler::TrustEnvironment::kQualOnly),
"qual");
EXPECT_EQ(AbslUnparseFlag(CryptoReadHandler::TrustEnvironment::kQualAndProd),
"qual_and_prod");
EXPECT_EQ(AbslUnparseFlag(CryptoReadHandler::TrustEnvironment::kDevOnly),
"dev");
EXPECT_EQ(AbslUnparseFlag(CryptoReadHandler::TrustEnvironment::kAny), "any");
EXPECT_EQ(AbslUnparseFlag(CryptoReadHandler::TrustEnvironment::kUnspecified),
"unknown");
}
} // namespace
} // namespace credentio