#!/bin/bash
# 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.

### Test expected usage of device-finder in fx scripts


BT_FILE_DEPS=(
  "scripts/fx"
  "tools/devshell/lib/fx-cmd-locator.sh"
  "tools/devshell/lib/fx-optional-features.sh"
  "tools/devshell/lib/vars.sh"
  "tools/devshell/lib/platform.sh"
  "tools/devshell/pave"
)

BT_MOCKED_TOOLS=(
  "out/default/pave.sh"
  "tools/devshell/build"
)

declare fx build pavesh

BT_SET_UP() {
  source "${BT_TEMP_DIR}/tools/devshell/tests/lib/fuchsia-mock.sh"
  fx="$(btf::setup_fx)"
  source "${BT_TEMP_DIR}/tools/devshell/lib/vars.sh"
  fx-config-read
  build="${BT_TEMP_DIR}/tools/devshell/build"
  pavesh="${BT_TEMP_DIR}/out/default/pave.sh"
}

TEST_pave_noincr_noargs() {
  local out="${BT_TEMP_DIR}/_fx_pave_output"
  BT_EXPECT ${fx} --disable=incremental pave > "$out" 2>&1
  # build was not called
  BT_ASSERT_FILE_DOES_NOT_EXIST "${build}.mock_state"
  # pave.sh was called
  BT_ASSERT_FILE_EXISTS "${pavesh}.mock_state"
  # pave.sh was called without option "-1"
  BT_EXPECT btf::does-mock-args-not-contain "${pavesh}.mock_state" "-1"
}

TEST_pave_singlerun() {
  local out="${BT_TEMP_DIR}/_fx_pave_output"
  BT_EXPECT ${fx} pave -1 > "$out" 2>&1
  # pave.sh was called with option "-1"
  BT_EXPECT btf::does-mock-args-contain "${pavesh}.mock_state" "-1"
}

TEST_pave_helpoptions() {
  local out="${BT_TEMP_DIR}/_fx_pave_output"
  BT_EXPECT ${fx} pave --build --help > "$out" 2>&1
  BT_EXPECT btf::does-mock-args-contain "${pavesh}.mock_state" "--help"
}

BT_RUN_TESTS "$@"
