#!/usr/bin/env zsh

# Required for shunit2 to run correctly
setopt shwordsplit
SHUNIT_PARENT=$0

# ------------------------------------------------------------------------------
# SHUNIT2 HOOKS
# ------------------------------------------------------------------------------

oneTimeSetUp() {
  export TERM="xterm-256color"

  source "lib/cache.zsh"
}

# ------------------------------------------------------------------------------
# TEST CASES
# ------------------------------------------------------------------------------

test_cache_get() {
  local value="bar"
  local shared_key="shared"

  SPACESHIP_CACHE[foo]="$value"
  assertEquals "should return the cached value" "$(spaceship::cache::get foo)" "$value"
  assertEquals "should not return unset value" "$(spaceship::cache::get bar)" ""
}

test_cache_set() {
  local key="foo"
  local value="bar"

  spaceship::cache::set "$key" "$value"
  assertEquals "should set the cache" "$value" "$(spaceship::cache::get "$key")"
}

test_cache_clear() {
  local key="foo"
  local value="bar"

  SPACESHIP_CACHE=(foo bar)
  spaceship::cache::clear

  assertEquals "should clear the cache" "" "$(spaceship::cache::get foo)"
  assertEquals "should clear the cache" "" "$(spaceship::cache::get bar)"
}

# ------------------------------------------------------------------------------
# SHUNIT2
# Run tests with shunit2
# ------------------------------------------------------------------------------

source tests/shunit2/shunit2