# Copyright 2019 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.

import("//build/components.gni")
import("//build/rust/rustc_library.gni")

rustc_library("bt-fidl-mocks") {
  edition = "2021"
  with_unit_tests = true

  deps = [
    "//sdk/fidl/fuchsia.bluetooth:fuchsia.bluetooth_rust",
    "//sdk/fidl/fuchsia.bluetooth.gatt:fuchsia.bluetooth.gatt_rust",
    "//sdk/fidl/fuchsia.bluetooth.gatt2:fuchsia.bluetooth.gatt2_rust",
    "//sdk/fidl/fuchsia.bluetooth.sys:fuchsia.bluetooth.sys_rust",
    "//src/connectivity/bluetooth/lib/fuchsia-bluetooth",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia-async",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
  ]

  test_deps = [ "//sdk/fidl/fuchsia.bluetooth.sys:fuchsia.bluetooth.sys_rust" ]

  sources = [
    "src/expect.rs",
    "src/gatt.rs",
    "src/gatt2.rs",
    "src/lib.rs",
    "src/sys.rs",
  ]

  configs -= [ "//build/config/rust/lints:allow_unused_results" ]
}

fuchsia_unittest_package("bt-fidl-mocks-tests") {
  deps = [ ":bt-fidl-mocks_test" ]
}

group("tests") {
  testonly = true
  deps = [ ":bt-fidl-mocks-tests" ]
}
