#include <gtest/gtest.h>

extern "C" {
  #include "pa_tz_api.h"
  #include "entry.h"
}

static PaTzResult g_config_init_result;

extern "C" PaTzResult ConfigInit(const uint8_t *buffer, size_t size) {
  return g_config_init_result;
}

class EntryTest : public ::testing::Test {
protected:
  virtual void SetUp() {
  }

  virtual void TearDown() {
  }
};

TEST_F(EntryTest, ConfigInitFailed) {
  g_config_init_result = PA_TZ_GENERAL_ERROR;
  TEE_Result result = Entry();
  EXPECT_TRUE(TEE_ERROR_BAD_PARAMETERS == result);
}

TEST_F(EntryTest, ConfigInitSuccess) {
  g_config_init_result = PA_TZ_SUCCESS;
  TEE_Result result = Entry();
  EXPECT_TRUE(TEE_SUCCESS == result);
}