//===- InputTreeTest.h ----------------------------------------------------===//
//
//                     The MCLinker Project
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef UNITTESTS_INPUTTREE_TEST_H
#define UNITTESTS_INPUTTREE_TEST_H

#include <gtest.h>
#include <mcld/MC/ContextFactory.h>
#include <mcld/Support/MemoryAreaFactory.h>

namespace mcld {

class InputTree;
class InputFactory;
class InputBuilder;
class LinkerConfig;

namespace test {

/** \class InputTreeTest
 *  \brief 
 *
 *  \see InputTree 
 */
class InputTreeTest : public ::testing::Test
{
public:
  // Constructor can do set-up work for all test here.
  InputTreeTest();

  // Destructor can do clean-up work that doesn't throw exceptions here.
  virtual ~InputTreeTest();

  // SetUp() will be called immediately before each test.
  virtual void SetUp();

  // TearDown() will be called immediately after each test.
  virtual void TearDown();

protected:
  mcld::LinkerConfig* m_pConfig;

  mcld::InputFactory* m_pAlloc;
  mcld::InputBuilder* m_pBuilder;
  mcld::MemoryAreaFactory m_MemFactory;
  mcld::ContextFactory m_ContextFactory;

  mcld::InputTree* m_pTestee;
};

} // namespace of test
} // namespace of mcld

#endif

