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

import("//build/test/test_package.gni")
import("//build/testing/environments.gni")

group("token_manager_integration") {
  testonly = true
  deps = [
    ":token_manager_integration_test_pkg",
    "//src/identity/bin/dev_auth_provider",
    "//src/identity/bin/dev_auth_provider_iotid",
  ]
}

executable("bin") {
  output_name = "token_manager_integration_test"
  testonly = true

  sources = [
    "dev_token_mgr_test.cc",
  ]

  public_deps = [
    "//sdk/lib/sys/cpp",
  ]

  deps = [
    "//garnet/public/lib/callback",
    "//garnet/public/lib/fsl",
    "//garnet/public/lib/gtest",
    "//garnet/public/lib/test_runner/cpp/reporting",
    "//sdk/fidl/fuchsia.auth",
    "//src/lib/fxl",
    "//src/lib/fxl/test:gtest_main",
    "//sdk/lib/sys/cpp/testing:integration",
  ]
}

test_package("token_manager_integration_test_pkg") {
  deps = [
    ":bin",
  ]

  tests = [
    {
      name = "token_manager_integration_test"
      environments = basic_envs
    },
  ]
}
