# Copyright 2017 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 = [ "//src/ledger/*" ]

executable("integration") {
  output_name = "ledger_integration_tests"

  testonly = true

  sources = [
    "integration_test_tests.cc",
    "ledger_app_instance_factory_integration.cc",
    "merging_tests.cc",
    "page_mutation_tests.cc",
    "page_snapshot_tests.cc",
    "page_tests.cc",
    "page_watcher_tests.cc",
  ]

  deps = [
    ":integration_lib",
    "//garnet/public/lib/callback",
    "//garnet/public/lib/fsl",
    "//garnet/public/lib/timekeeper:testing",
    "//peridot/lib/convert",
    "//peridot/lib/socket",
    "//sdk/fidl/fuchsia.ledger",
    "//sdk/fidl/fuchsia.modular.auth",
    "//sdk/lib/fidl/cpp",
    "//sdk/lib/sys/cpp/testing:unit",
    "//src/ledger/bin/app:lib",
    "//src/ledger/bin/fidl",
    "//src/ledger/bin/fidl:error_notifier",
    "//src/ledger/bin/p2p_provider/impl",
    "//src/ledger/bin/p2p_provider/public",
    "//src/ledger/bin/p2p_sync/impl",
    "//src/ledger/bin/p2p_sync/public",
    "//src/ledger/bin/storage/fake:lib",
    "//src/ledger/bin/storage/public",
    "//src/ledger/bin/testing:ledger_instance_factory",
    "//src/ledger/bin/testing:lib",
    "//src/ledger/bin/testing/netconnector",
    "//src/ledger/bin/tests/integration/sync",
    "//src/ledger/cloud_provider_in_memory/lib",
    "//src/ledger/lib/firebase_auth/testing",
    "//src/lib/fxl",
    "//third_party/googletest:gtest_main",
  ]

  configs += [ "//src/ledger:ledger_config" ]
}

source_set("integration_lib") {
  testonly = true

  sources = [
    "integration_test.cc",
    "integration_test.h",
    "test_page_watcher.cc",
    "test_page_watcher.h",
    "test_utils.cc",
    "test_utils.h",
  ]

  deps = [
    "//peridot/lib/convert",
    "//peridot/lib/socket",
  ]

  public_deps = [
    "//garnet/public/lib/gtest",
    "//sdk/fidl/fuchsia.ledger",
    "//src/ledger/bin/fidl",
    "//src/ledger/bin/testing:ledger_instance_factory",
    "//src/lib/fxl",
    "//third_party/googletest:gtest",
    "//zircon/public/lib/async-loop-cpp",
    "//zircon/public/lib/async-testutils",
    "//zircon/public/lib/trace-provider",
  ]

  configs += [ "//src/ledger:ledger_config" ]
}
