chromium/ash/quick_pair/common/device_unittest.cc

// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "ash/quick_pair/common/device.h"

#include <cstdint>

#include "ash/quick_pair/common/protocol.h"
#include "base/memory/scoped_refptr.h"
#include "testing/gtest/include/gtest/gtest.h"

namespace ash {
namespace quick_pair {

class DeviceTest : public testing::Test {
 protected:
  scoped_refptr<Device> device_ =
      base::MakeRefCounted<Device>("metadata_id",
                                   "ble_address",
                                   Protocol::kFastPairInitial);
};

TEST_F(DeviceTest, GetAndSetAccountKey) {
  std::optional<std::vector<uint8_t>> accountKey;
  std::vector<uint8_t> data = {0};
  device_->set_account_key(data);
  accountKey = device_->account_key();
  EXPECT_EQ(accountKey, data);

  // Test that overriding works.
  std::vector<uint8_t> more_data = {1};
  device_->set_account_key(more_data);
  accountKey = device_->account_key();
  EXPECT_EQ(accountKey, more_data);
}

TEST_F(DeviceTest, GetAndSetName) {
  // Test that name returns null before any sets.
  std::optional<std::string> name = device_->display_name();
  EXPECT_FALSE(name.has_value());

  // Test that name returns the set value.
  std::string test_name = "test_name";
  device_->set_display_name(test_name);
  name = device_->display_name();
  EXPECT_TRUE(name.has_value());
  EXPECT_EQ(name.value(), test_name);

  // Test that overriding works.
  std::string new_test_name = "new_test_name";
  device_->set_display_name(new_test_name);
  name = device_->display_name();
  EXPECT_TRUE(name.has_value());
  EXPECT_EQ(name.value(), new_test_name);
}
}  // namespace quick_pair
}  // namespace ash