| // Copyright 2025 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 "src/observation_store/observation_store.h" |
| |
| #include <gtest/gtest.h> |
| |
| #include "src/pb/common.pb.h" |
| #include "src/pb/envelope.pb.h" |
| #include "src/pb/observation_batch.pb.h" |
| |
| namespace cobalt::observation_store { |
| |
| namespace { |
| |
| using EnvelopeHolder = ObservationStore::EnvelopeHolder; |
| |
| TEST(EnvelopeHolderTest, MultipleUniqueSystemProfiles) { |
| Envelope envelope; |
| |
| ObservationBatch* batch1 = envelope.add_batch(); |
| ObservationMetadata* metadata1 = batch1->mutable_meta_data(); |
| metadata1->mutable_system_profile()->set_system_version("test_system_version"); |
| |
| ObservationBatch* batch2 = envelope.add_batch(); |
| ObservationMetadata* metadata2 = batch2->mutable_meta_data(); |
| metadata2->mutable_system_profile()->set_system_version("another_system_version"); |
| |
| EnvelopeHolder::MoveSystemProfilesToEnvelope(envelope); |
| |
| ASSERT_EQ(envelope.system_profiles_size(), 2); |
| EXPECT_EQ(envelope.system_profiles(0).system_version(), "test_system_version"); |
| EXPECT_EQ(envelope.system_profiles(1).system_version(), "another_system_version"); |
| |
| EXPECT_EQ(metadata1->system_profile_index(), 0); |
| EXPECT_EQ(metadata2->system_profile_index(), 1); |
| EXPECT_FALSE(metadata1->has_system_profile()); |
| EXPECT_FALSE(metadata2->has_system_profile()); |
| } |
| |
| TEST(EnvelopeHolderTest, SharesSystemProfiles) { |
| Envelope envelope; |
| |
| ObservationBatch* batch1 = envelope.add_batch(); |
| ObservationMetadata* metadata1 = batch1->mutable_meta_data(); |
| metadata1->mutable_system_profile()->set_system_version("test_system_version"); |
| |
| ObservationBatch* batch2 = envelope.add_batch(); |
| ObservationMetadata* metadata2 = batch2->mutable_meta_data(); |
| metadata2->mutable_system_profile()->set_system_version("another_system_version"); |
| |
| ObservationBatch* batch3 = envelope.add_batch(); |
| ObservationMetadata* metadata3 = batch3->mutable_meta_data(); |
| metadata3->mutable_system_profile()->set_system_version("test_system_version"); |
| |
| EnvelopeHolder::MoveSystemProfilesToEnvelope(envelope); |
| |
| ASSERT_EQ(envelope.system_profiles_size(), 2); |
| EXPECT_EQ(envelope.system_profiles(0).system_version(), "test_system_version"); |
| EXPECT_EQ(envelope.system_profiles(1).system_version(), "another_system_version"); |
| |
| EXPECT_EQ(metadata1->system_profile_index(), 0); |
| EXPECT_EQ(metadata2->system_profile_index(), 1); |
| EXPECT_EQ(metadata3->system_profile_index(), 0); |
| EXPECT_FALSE(metadata1->has_system_profile()); |
| EXPECT_FALSE(metadata2->has_system_profile()); |
| EXPECT_FALSE(metadata3->has_system_profile()); |
| } |
| |
| } // namespace |
| } // namespace cobalt::observation_store |