# 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("//peridot/build/tests_package.gni")

hermetic_tests_package("story_systems_unittests") {
  deps = [
    ":story_visibility_system_unittest",
  ]
}

source_set("story_visibility_system") {
  sources = [
    "story_visibility_system.cc",
    "story_visibility_system.h",
  ]

  public_deps = [
    "//peridot/public/fidl/fuchsia.modular",
  ]

  deps = [
    "//peridot/bin/sessionmgr/story:system",
    "//peridot/bin/sessionmgr/story/model",
    "//peridot/public/fidl/fuchsia.modular.storymodel",
  ]
}

executable("story_visibility_system_unittest") {
  testonly = true

  sources = [
    "story_visibility_system_unittest.cc",
  ]

  deps = [
    ":story_visibility_system",
    "//peridot/bin/sessionmgr/story/model",
    "//peridot/bin/sessionmgr/story/model/testing",
    "//third_party/googletest:gmock",
    "//third_party/googletest:gtest",
    "//third_party/googletest:gtest_main",
  ]
}
