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

visibility = [ "$cobalt_root/*" ]

executable("test_app") {
  testonly = true

  sources = [ "test_app_main.cc" ]

  deps = [
    ":lib",
    "$cobalt_root/src/pb",
  ]
}

source_set("lib") {
  testonly = true

  sources = [
    "test_app.cc",
    "test_app.h",
  ]

  configs += [ "$cobalt_root/src/registry:proto_config" ]

  public_deps = [
    "$cobalt_root/src/local_aggregation:event_aggregator_mgr",
    "$cobalt_root/src/logger",
    "$cobalt_root/src/logger:encoder",
    "$cobalt_root/src/logger:undated_event_manager",
    "//third_party/gflags",
    "//third_party/googletest:gtest",
  ]
  deps = [
    "$cobalt_root/src:logging",
    "$cobalt_root/src/lib/clearcut:curl_http_client",
    "$cobalt_root/src/lib/util:clock",
    "$cobalt_root/src/lib/util:datetime_util",
    "$cobalt_root/src/lib/util:file_util",
    "$cobalt_root/src/lib/util:posix_file_system",
    "$cobalt_root/src/lib/util:proto_serialization",
    "$cobalt_root/src/logger:project_context_factory",
    "$cobalt_root/src/public:cobalt_service",
    "$cobalt_root/src/public/lib:registry_identifiers",
    "$cobalt_root/src/public/lib:status",
    "$cobalt_root/src/uploader:shipping_manager",
    "//third_party/abseil-cpp",
    "//third_party/protobuf:protobuf_lite",
    "//third_party/tink/cc/util:status",
  ]
}

source_set("tests") {
  testonly = true

  sources = [ "test_app_test.cc" ]

  deps = [
    ":lib",
    "$cobalt_root/src/bin/test_app/test_registry",
    "$cobalt_root/src/logger:logger_test_utils",
    "$cobalt_root/src/logger:project_context_factory",
    "//third_party/gflags",
    "//third_party/googletest:gtest",
    "//third_party/tink/cc/util:status",
  ]
}
