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

visibility = [ "//peridot/bin/ledger/*" ]

source_set("netconnector") {
  testonly = true

  sources = [
    "fake_netconnector.cc",
    "fake_netconnector.h",
    "netconnector_factory.cc",
    "netconnector_factory.h",
  ]

  public_deps = [
    "//garnet/public/fidl/fuchsia.netconnector",
    "//garnet/public/lib/callback",
    "//peridot/bin/ledger/fidl_helpers",
    "//peridot/bin/ledger/testing:lib",
  ]

  deps = [
    "//garnet/public/lib/fsl",
    "//garnet/public/lib/fxl",
    "//garnet/public/lib/test_runner/cpp/reporting",
    "//peridot/lib/convert",
    "//third_party/googletest:gtest",
  ]

  configs += [ "//peridot/bin/ledger:ledger_config" ]
}

source_set("unittests") {
  testonly = true

  sources = [
    "netconnector_factory_unittest.cc",
  ]

  deps = [
    ":netconnector",
    "//garnet/public/fidl/fuchsia.netconnector",
    "//garnet/public/lib/callback",
    "//garnet/public/lib/fsl",
    "//garnet/public/lib/fxl",
    "//garnet/public/lib/netconnector/cpp",
    "//peridot/bin/ledger/environment",
    "//peridot/bin/ledger/testing:lib",
    "//peridot/lib/convert",
    "//third_party/googletest:gtest",
  ]

  configs += [ "//peridot/bin/ledger:ledger_config" ]
}
