objects_counter_ut.cpp 1008 B

123456789101112131415161718192021222324252627282930313233343536
  1. #include "object_counter.h"
  2. #include <library/cpp/testing/unittest/registar.h>
  3. Y_UNIT_TEST_SUITE(ObjectsCounter) {
  4. struct TObject: public TObjectCounter<TObject> {
  5. };
  6. Y_UNIT_TEST(Test1) {
  7. TObject obj;
  8. TVector<TObject> objects;
  9. for (ui32 i = 0; i < 100; ++i) {
  10. objects.push_back(obj);
  11. }
  12. UNIT_ASSERT_EQUAL(TObjectCounter<TObject>::ObjectCount(), 101);
  13. }
  14. Y_UNIT_TEST(TestEq) {
  15. TObject obj;
  16. {
  17. TObject obj1 = obj;
  18. UNIT_ASSERT_EQUAL(TObjectCounter<TObject>::ObjectCount(), 2);
  19. }
  20. UNIT_ASSERT_EQUAL(TObjectCounter<TObject>::ObjectCount(), 1);
  21. }
  22. Y_UNIT_TEST(TestMove) {
  23. TObject obj;
  24. UNIT_ASSERT_EQUAL(TObjectCounter<TObject>::ObjectCount(), 1);
  25. {
  26. TObject obj1 = std::move(obj);
  27. UNIT_ASSERT_EQUAL(TObjectCounter<TObject>::ObjectCount(), 2);
  28. }
  29. UNIT_ASSERT_EQUAL(TObjectCounter<TObject>::ObjectCount(), 1);
  30. }
  31. }