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

import("//build/dart/dart_library.gni")
import("//topaz/runtime/dart/dart_test.gni")

dart_library("fuchsia_logger") {
  package_name = "fuchsia_logger"

  sdk_category = "partner"

  source_dir = "lib"

  sources = [
    "logger.dart",
    "src/internal/_fuchsia_log_writer.dart",
    "src/internal/_log_message.dart",
    "src/internal/_log_writer.dart",
    "src/internal/_stdout_log_writer.dart",
    "src/logger/logger.dart",
  ]

  deps = [
    "//third_party/dart-pkg/pub/logging",
    "//third_party/dart-pkg/pub/meta",
    "//topaz/public/dart/fuchsia_services",
    "//topaz/public/dart/zircon",
    "//zircon/public/fidl/fuchsia-logger",
  ]
}

# Runs these tests using:
#   fx run-host-tests fuchsia_logger_package_unittests
dart_test("fuchsia_logger_package_unittests") {
  sources = [
    "internal/log_message_test.dart",
    "internal/log_writer_test.dart",
    "internal/stdout_log_writer_test.dart",
  ]

  deps = [
    ":fuchsia_logger",
    "//third_party/dart-pkg/pub/mockito",
    "//third_party/dart-pkg/pub/test",
  ]
}
