# Copyright 2019 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/rust/rustc_binary.gni")
import("//build/rust/rustc_test.gni")
import("//build/testing/environments.gni")
import("//src/sys/build/components.gni")

rustc_binary("bin") {
  name = "fake_factory_items"
  edition = "2018"

  deps = [
    "//sdk/fidl/fuchsia.boot:fuchsia.boot-rustc",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:serde",
    "//third_party/rust_crates:serde_json",
    "//third_party/rust_crates:structopt",
    "//third_party/rust_crates:thiserror",
  ]

  sources = [
    "src/config.rs",
    "src/fake_factory_items_server.rs",
    "src/main.rs",
  ]
}

fuchsia_component("fake_factory_items_comp") {
  component_name = "fake_factory_items"
  manifest = "meta/fake_factory_items.cmx"
  deps = [ ":bin" ]
}

fuchsia_package("fake_factory_items") {
  deps = [ ":fake_factory_items_comp" ]
}

rustc_test("fake_factory_items_test") {
  edition = "2018"
  source_root = "tests/fake_factory_items_test.rs"

  deps = [
    "//sdk/fidl/fuchsia.boot:fuchsia.boot-rustc",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:thiserror",
  ]

  sources = [ "tests/fake_factory_items_test.rs" ]
}

resource("testdata") {
  testonly = true
  sources = [
    "testdata/empty",
    "testdata/fake_factory_items.json",
    "testdata/random1",
    "testdata/random2",
  ]
  outputs = [ "data/{{source_file_part}}" ]
}

fuchsia_test_component("fake_factory_items_test_comp") {
  component_name = "fake_factory_items_test"
  manifest = "meta/fake_factory_items_test.cmx"
  deps = [ ":fake_factory_items_test" ]
}

fuchsia_test_package("fake_factory_items_tests") {
  test_components = [ ":fake_factory_items_test_comp" ]
  deps = [
    ":fake_factory_items_comp",
    ":testdata",
  ]
}
