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

group("lib") {
  testonly = true
  deps = [ ":identity_lib_unittests" ]
}

group("tests") {
  testonly = true
  deps = [ ":identity_lib_unittests" ]
}

test_package("identity_lib_unittests") {
  deps = [
    "account_common:account_common_test",
    "identity_common:identity_common_test",
    "identity_key_manager:identity_key_manager_test",
    "storage_manager:storage_manager_test",
    "token_cache:token_cache_test",
    "token_manager:token_manager_test",
    "token_store:token_store_test",
  ]

  tests = [
    {
      name = "account_common_lib_test"
      environments = basic_envs
    },
    {
      name = "identity_common_lib_test"
      environments = basic_envs
    },
    {
      name = "identity_key_manager_lib_test"
      environments = basic_envs
    },
    {
      name = "storage_manager_lib_test"
      environments = basic_envs
    },
    {
      name = "token_cache_lib_test"
      environments = basic_envs
    },
    {
      name = "token_store_lib_test"
      environments = basic_envs
    },
    {
      name = "token_manager_lib_test"
      environments = basic_envs
    },
  ]
}
