// Copyright 2023 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 // // http://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 "tink/internal/serializer_index.h" #include "gmock/gmock.h" #include "gtest/gtest.h" #include "tink/internal/serialization_test_util.h" namespace crypto { namespace tink { namespace internal { using ::testing::Eq; using ::testing::Not; TEST(SerializerIndex, CreateEquivalentFromParameters) { // Multi-parameter templates require extra surrounding parentheses. ASSERT_THAT((SerializerIndex::Create()), Eq((SerializerIndex::Create()))); ASSERT_THAT((SerializerIndex::Create()), Eq((SerializerIndex::Create(NoIdParams())))); ASSERT_THAT((SerializerIndex::Create(NoIdParams())), Eq((SerializerIndex::Create(NoIdParams())))); } TEST(SerializerIndex, CreateFromDifferentParametersType) { // Multi-parameter templates require extra surrounding parentheses. ASSERT_THAT( (SerializerIndex::Create()), Not(Eq((SerializerIndex::Create())))); ASSERT_THAT( (SerializerIndex::Create(NoIdParams())), Not(Eq((SerializerIndex::Create(IdParams()))))); } TEST(SerializerIndex, CreateFromSameParametersTypeWithDifferentSerialization) { // Multi-parameter templates require extra surrounding parentheses. ASSERT_THAT( (SerializerIndex::Create()), Not(Eq((SerializerIndex::Create())))); ASSERT_THAT( (SerializerIndex::Create(NoIdParams())), Not(Eq((SerializerIndex::Create(NoIdParams()))))); } TEST(SerializerIndex, CreateEquivalentFromKey) { // Multi-parameter templates require extra surrounding parentheses. ASSERT_THAT((SerializerIndex::Create()), Eq((SerializerIndex::Create()))); ASSERT_THAT((SerializerIndex::Create()), Eq((SerializerIndex::Create(NoIdKey())))); ASSERT_THAT((SerializerIndex::Create(NoIdKey())), Eq((SerializerIndex::Create(NoIdKey())))); } TEST(SerializerIndex, CreateFromDifferentKeyType) { // Multi-parameter templates require extra surrounding parentheses. ASSERT_THAT((SerializerIndex::Create()), Not(Eq((SerializerIndex::Create())))); ASSERT_THAT( (SerializerIndex::Create(NoIdKey())), Not(Eq((SerializerIndex::Create(IdKey(/*id=*/1)))))); } TEST(SerializerIndex, CreateFromSameKeyTypeWithDifferentSerialization) { // Multi-parameter templates require extra surrounding parentheses. ASSERT_THAT( (SerializerIndex::Create()), Not(Eq((SerializerIndex::Create())))); ASSERT_THAT( (SerializerIndex::Create(NoIdKey())), Not(Eq((SerializerIndex::Create(NoIdKey()))))); } } // namespace internal } // namespace tink } // namespace crypto