blob: 4c1cc263ce72c365cc096ba8601c7e1fa2e977a8 [file] [log] [blame] [edit]
// 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