// Copyright 2011 Google Inc. All Rights Reserved.

#include "common_test.h"

#include "reference_table.h"

namespace art {

class ReferenceTableTest : public CommonTest {
};

TEST_F(ReferenceTableTest, Basics) {
  Object* o1 = String::AllocFromModifiedUtf8("hello");
  Object* o2 = ShortArray::Alloc(0);

  // TODO: rewrite Dump to take a std::ostream& so we can test it better.

  ReferenceTable rt("test", 0, 4);
  rt.Dump();
  EXPECT_EQ(0U, rt.Size());
  rt.Remove(NULL);
  EXPECT_EQ(0U, rt.Size());
  rt.Remove(o1);
  EXPECT_EQ(0U, rt.Size());
  rt.Add(o1);
  EXPECT_EQ(1U, rt.Size());
  rt.Add(o2);
  EXPECT_EQ(2U, rt.Size());
  rt.Dump();
  rt.Remove(o1);
  EXPECT_EQ(1U, rt.Size());
  rt.Remove(o2);
  EXPECT_EQ(0U, rt.Size());
}

}  // namespace art
