# 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")

source_set("oauth") {
  sources = [
    "oauth_request_builder.cc",
    "oauth_request_builder.h",
    "oauth_response.cc",
    "oauth_response.h",
  ]

  deps = [
    "//garnet/public/fidl/fuchsia.auth",
    "//garnet/public/lib/fsl",
    "//garnet/public/lib/fxl",
    "//garnet/public/lib/network_wrapper",
    "//peridot/lib/rapidjson",
  ]
}

source_set("unittests") {
  testonly = true

  sources = [
    "oauth_request_builder_unittest.cc",
    "oauth_response_unittest.cc",
  ]

  deps = [
    ":oauth",
    "//garnet/public/lib/fsl",
    "//garnet/public/lib/fxl",
    "//garnet/public/lib/fxl:fxl_printers",
    "//peridot/lib/rapidjson",
    "//third_party/googletest:gtest",
  ]
}
