Index: src/libchcore/Tests/TestsTSharedModificationTracker.cpp =================================================================== diff -u -N -r87f7271b86103cc66243554a91af0c0654f55f45 -ra4635addad389b9e117679437a3e1b64a739ea96 --- src/libchcore/Tests/TestsTSharedModificationTracker.cpp (.../TestsTSharedModificationTracker.cpp) (revision 87f7271b86103cc66243554a91af0c0654f55f45) +++ src/libchcore/Tests/TestsTSharedModificationTracker.cpp (.../TestsTSharedModificationTracker.cpp) (revision a4635addad389b9e117679437a3e1b64a739ea96) @@ -1,193 +1,193 @@ -#include "stdafx.h" -#include "gtest/gtest.h" -#include "gmock/gmock.h" -#include "../TSharedModificationTracker.h" -#include -#include "../TString.h" - -using namespace chcore; - -TEST(TSharedModificationTrackerTests, DefaultConstructor) -{ - enum { eMyElement, eLast }; - std::bitset setBits; - TSharedModificationTracker, eMyElement> tracker(setBits); - - EXPECT_EQ(true, tracker.IsModified()); - EXPECT_EQ(true, setBits[eMyElement]); - EXPECT_EQ(TString(), tracker); -} - -TEST(TSharedModificationTrackerTests, AlmostCopyConstructor_Modified) -{ - enum - { - eMyElement, eLast - }; - std::bitset setBits; - TSharedModificationTracker, eMyElement> tracker(setBits); - - std::bitset setBits2; - TSharedModificationTracker, eMyElement> tracker2(tracker, setBits2); - - EXPECT_EQ(true, tracker2.IsModified()); - EXPECT_EQ(true, setBits2[eMyElement]); - EXPECT_EQ(TString(), tracker2); -} - -TEST(TSharedModificationTrackerTests, AlmostCopyConstructor_Modified_WithValue) -{ - enum - { - eMyElement, eLast - }; - - std::bitset setBits; - TSharedModificationTracker, eMyElement> tracker(setBits); - tracker = L"SomeString"; - - std::bitset setBits2; - TSharedModificationTracker, eMyElement> tracker2(tracker, setBits2); - - EXPECT_EQ(true, tracker2.IsModified()); - EXPECT_EQ(true, setBits2[eMyElement]); - EXPECT_EQ(TString(L"SomeString"), tracker2); -} - -TEST(TSharedModificationTrackerTests, AlmostCopyConstructor_Unmodified) -{ - enum - { - eMyElement, eLast - }; - std::bitset setBits; - TSharedModificationTracker, eMyElement> tracker(setBits); - tracker.MarkAsUnmodified(); - - std::bitset setBits2; - TSharedModificationTracker, eMyElement> tracker2(tracker, setBits2); - - EXPECT_EQ(false, tracker2.IsModified()); - EXPECT_EQ(false, setBits2[eMyElement]); -} - -TEST(TSharedModificationTrackerTests, AlmostCopyConstructor_Unmodified_WithValue) -{ - enum - { - eMyElement, eLast - }; - std::bitset setBits; - TSharedModificationTracker, eMyElement> tracker(setBits); - tracker = L"SomeString"; - tracker.MarkAsUnmodified(); - - std::bitset setBits2; - TSharedModificationTracker, eMyElement> tracker2(tracker, setBits2); - - EXPECT_EQ(false, tracker2.IsModified()); - EXPECT_EQ(false, setBits2[eMyElement]); - EXPECT_EQ(TString(L"SomeString"), tracker2); -} - -TEST(TSharedModificationTrackerTests, ConstructorWithValue) -{ - enum - { - eMyElement, eLast - }; - std::bitset setBits; - TSharedModificationTracker, eMyElement> tracker(setBits, L"SomeString"); - - EXPECT_EQ(true, tracker.IsModified()); - EXPECT_EQ(true, setBits[eMyElement]); - EXPECT_EQ(TString(L"SomeString"), tracker); -} - -/////////////////////////////////////////////////////////////////////////// -TEST(TSharedModificationTrackerTests, AssignmentOperator_SharedTracker) -{ - enum - { - eMyElement, eLast - }; - std::bitset setBits; - TSharedModificationTracker, eMyElement> tracker(setBits, L"SomeString"); - - std::bitset setBits2; - TSharedModificationTracker, eMyElement> tracker2(setBits2); - tracker2 = tracker; - - EXPECT_EQ(true, tracker2.IsModified()); - EXPECT_EQ(true, setBits2[eMyElement]); - EXPECT_EQ(TString(L"SomeString"), tracker2); -} - -TEST(TSharedModificationTrackerTests, AssignmentOperator_OtherValue_ModifiesValue) -{ - enum - { - eMyElement, eLast - }; - std::bitset setBits; - TSharedModificationTracker, eMyElement> tracker(setBits); - - tracker = L"SomeString"; - - EXPECT_EQ(true, tracker.IsModified()); - EXPECT_EQ(true, setBits[eMyElement]); - EXPECT_EQ(TString(L"SomeString"), tracker); -} - -TEST(TSharedModificationTrackerTests, AssignmentOperator_OtherValue_DoesNotModifyValue) -{ - enum - { - eMyElement, eLast - }; - std::bitset setBits; - TSharedModificationTracker, eMyElement> tracker(setBits); - - tracker = L"SomeString"; - - EXPECT_EQ(true, tracker.IsModified()); - EXPECT_EQ(true, setBits[eMyElement]); - EXPECT_EQ(TString(L"SomeString"), tracker); -} - -/////////////////////////////////////////////////////////////////////////// -TEST(TSharedModificationTrackerTests, Modify) -{ - enum - { - eMyElement, eLast - }; - std::bitset setBits; - TSharedModificationTracker, eMyElement> tracker(setBits, L"SomeString"); - tracker.MarkAsUnmodified(); - - tracker.Modify() = L"OtherString"; - - EXPECT_EQ(true, tracker.IsModified()); - EXPECT_EQ(true, setBits[eMyElement]); - EXPECT_EQ(TString(L"OtherString"), tracker); -} - -/////////////////////////////////////////////////////////////////////////// -TEST(TSharedModificationTrackerTests, MarkAsModified_MarkAsUnmodified) -{ - enum - { - eMyElement, eLast - }; - std::bitset setBits; - TSharedModificationTracker, eMyElement> tracker(setBits, L"SomeString"); - - EXPECT_EQ(true, tracker.IsModified()); - - tracker.MarkAsUnmodified(); - EXPECT_EQ(false, tracker.IsModified()); - - tracker.MarkAsModified(); - EXPECT_EQ(true, tracker.IsModified()); -} +#include "stdafx.h" +#include "gtest/gtest.h" +#include "gmock/gmock.h" +#include "../TSharedModificationTracker.h" +#include +#include "../TString.h" + +using namespace chcore; + +TEST(TSharedModificationTrackerTests, DefaultConstructor) +{ + enum { eMyElement, eLast }; + std::bitset setBits; + TSharedModificationTracker, eMyElement> tracker(setBits); + + EXPECT_EQ(true, tracker.IsModified()); + EXPECT_EQ(true, setBits[eMyElement]); + EXPECT_EQ(TString(), tracker); +} + +TEST(TSharedModificationTrackerTests, AlmostCopyConstructor_Modified) +{ + enum + { + eMyElement, eLast + }; + std::bitset setBits; + TSharedModificationTracker, eMyElement> tracker(setBits); + + std::bitset setBits2; + TSharedModificationTracker, eMyElement> tracker2(tracker, setBits2); + + EXPECT_EQ(true, tracker2.IsModified()); + EXPECT_EQ(true, setBits2[eMyElement]); + EXPECT_EQ(TString(), tracker2); +} + +TEST(TSharedModificationTrackerTests, AlmostCopyConstructor_Modified_WithValue) +{ + enum + { + eMyElement, eLast + }; + + std::bitset setBits; + TSharedModificationTracker, eMyElement> tracker(setBits); + tracker = L"SomeString"; + + std::bitset setBits2; + TSharedModificationTracker, eMyElement> tracker2(tracker, setBits2); + + EXPECT_EQ(true, tracker2.IsModified()); + EXPECT_EQ(true, setBits2[eMyElement]); + EXPECT_EQ(TString(L"SomeString"), tracker2); +} + +TEST(TSharedModificationTrackerTests, AlmostCopyConstructor_Unmodified) +{ + enum + { + eMyElement, eLast + }; + std::bitset setBits; + TSharedModificationTracker, eMyElement> tracker(setBits); + tracker.MarkAsUnmodified(); + + std::bitset setBits2; + TSharedModificationTracker, eMyElement> tracker2(tracker, setBits2); + + EXPECT_EQ(false, tracker2.IsModified()); + EXPECT_EQ(false, setBits2[eMyElement]); +} + +TEST(TSharedModificationTrackerTests, AlmostCopyConstructor_Unmodified_WithValue) +{ + enum + { + eMyElement, eLast + }; + std::bitset setBits; + TSharedModificationTracker, eMyElement> tracker(setBits); + tracker = L"SomeString"; + tracker.MarkAsUnmodified(); + + std::bitset setBits2; + TSharedModificationTracker, eMyElement> tracker2(tracker, setBits2); + + EXPECT_EQ(false, tracker2.IsModified()); + EXPECT_EQ(false, setBits2[eMyElement]); + EXPECT_EQ(TString(L"SomeString"), tracker2); +} + +TEST(TSharedModificationTrackerTests, ConstructorWithValue) +{ + enum + { + eMyElement, eLast + }; + std::bitset setBits; + TSharedModificationTracker, eMyElement> tracker(setBits, L"SomeString"); + + EXPECT_EQ(true, tracker.IsModified()); + EXPECT_EQ(true, setBits[eMyElement]); + EXPECT_EQ(TString(L"SomeString"), tracker); +} + +/////////////////////////////////////////////////////////////////////////// +TEST(TSharedModificationTrackerTests, AssignmentOperator_SharedTracker) +{ + enum + { + eMyElement, eLast + }; + std::bitset setBits; + TSharedModificationTracker, eMyElement> tracker(setBits, L"SomeString"); + + std::bitset setBits2; + TSharedModificationTracker, eMyElement> tracker2(setBits2); + tracker2 = tracker; + + EXPECT_EQ(true, tracker2.IsModified()); + EXPECT_EQ(true, setBits2[eMyElement]); + EXPECT_EQ(TString(L"SomeString"), tracker2); +} + +TEST(TSharedModificationTrackerTests, AssignmentOperator_OtherValue_ModifiesValue) +{ + enum + { + eMyElement, eLast + }; + std::bitset setBits; + TSharedModificationTracker, eMyElement> tracker(setBits); + + tracker = L"SomeString"; + + EXPECT_EQ(true, tracker.IsModified()); + EXPECT_EQ(true, setBits[eMyElement]); + EXPECT_EQ(TString(L"SomeString"), tracker); +} + +TEST(TSharedModificationTrackerTests, AssignmentOperator_OtherValue_DoesNotModifyValue) +{ + enum + { + eMyElement, eLast + }; + std::bitset setBits; + TSharedModificationTracker, eMyElement> tracker(setBits); + + tracker = L"SomeString"; + + EXPECT_EQ(true, tracker.IsModified()); + EXPECT_EQ(true, setBits[eMyElement]); + EXPECT_EQ(TString(L"SomeString"), tracker); +} + +/////////////////////////////////////////////////////////////////////////// +TEST(TSharedModificationTrackerTests, Modify) +{ + enum + { + eMyElement, eLast + }; + std::bitset setBits; + TSharedModificationTracker, eMyElement> tracker(setBits, L"SomeString"); + tracker.MarkAsUnmodified(); + + tracker.Modify() = L"OtherString"; + + EXPECT_EQ(true, tracker.IsModified()); + EXPECT_EQ(true, setBits[eMyElement]); + EXPECT_EQ(TString(L"OtherString"), tracker); +} + +/////////////////////////////////////////////////////////////////////////// +TEST(TSharedModificationTrackerTests, MarkAsModified_MarkAsUnmodified) +{ + enum + { + eMyElement, eLast + }; + std::bitset setBits; + TSharedModificationTracker, eMyElement> tracker(setBits, L"SomeString"); + + EXPECT_EQ(true, tracker.IsModified()); + + tracker.MarkAsUnmodified(); + EXPECT_EQ(false, tracker.IsModified()); + + tracker.MarkAsModified(); + EXPECT_EQ(true, tracker.IsModified()); +}