# Copyright 2020 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/test.gni")

source_set("applets_loader") {
  sources = [
    "applet.cc",
    "applet.h",
    "applets_loader.cc",
    "applets_loader.h",
    "applets_module.cc",
    "applets_module.h",
  ]

  public_deps = [
    "//sdk/lib/syslog/cpp",
    "//src/connectivity/weave/lib/applets",
  ]
}

test("weave_applets_loader_unittests") {
  sources = [
    "applet_unittest.cc",
    "applets_loader_unittest.cc",
    "applets_module_unittest.cc",
  ]
  deps = [
    ":applets_loader",
    "testing",
    "//sdk/lib/syslog/cpp:backend_legacy",
    "//src/connectivity/weave/adaptation:adaptation.shared",
    "//src/lib/fxl/test:gtest_main",
  ]
}

fuchsia_unittest_package("weave-applets-loader-unittests") {
  deps = [
    ":weave_applets_loader_unittests",
    "//src/connectivity/weave/applets/test_applets",
  ]
  test_specs = {
    log_settings = {
      max_severity = "ERROR"
    }
  }
}

group("tests") {
  testonly = true
  deps = [ ":weave-applets-loader-unittests" ]
}
