# 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/dart/dart_library.gni")
import("//topaz/runtime/dart/flutter_test.gni")

dart_library("dart") {
  package_name = "lib.mondrian.dart"

  sdk_category = "partner"
  sources = [
    "mondrian.dart",
    "src/composer.dart",
    "src/layout/layout_context.dart",
    "src/layout/layout_types.dart",
    "src/tree/surface_node.dart",
    "src/tree/surface_tree.dart",
    "src/surface/surface_relation.dart",
    "src/surface/surface.dart",
  ]

  deps = [
    "//third_party/dart-pkg/pub/meta",
    "//topaz/public/dart/fuchsia_logger"
  ]
}

flutter_test("mondrian_lib_tests") {
  sources = [
    "encode_decode_test.dart",
    "layout_test.dart",
    "surface_node_test.dart",
    "surface_tree_test.dart",
  ]

  deps = [
    ":dart",
    "//third_party/dart-pkg/pub/logging",
    "//third_party/dart-pkg/pub/test",
    "//topaz/public/lib/mondrian/dart",
  ]
}
