# 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",
  ]

  public_deps = [
    "//sdk/fidl/fuchsia.auth",
    "//sdk/fidl/fuchsia.net.oldhttp",
  ]
  deps = [
    "//garnet/public/lib/fsl",
    "//src/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",
    "//src/lib/fxl",
    "//src/lib/fxl:printers",
    "//peridot/lib/rapidjson",
    "//third_party/googletest:gtest",
  ]
}
