# 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/package.gni")
import("//build/testing/environments.gni")

package("auth_provider_tests") {
  testonly = true

  deps = [
    ":auth_provider_unittests",
  ]

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

executable("auth_provider_unittests") {
  testonly = true

  deps = [
    "//garnet/public/lib/fxl:fxl_printers",
    "//third_party/googletest:gtest_main",
    "//topaz/auth_providers/google:unittests",
    "//topaz/auth_providers/oauth:unittests",
  ]
}
