Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <UnitTest11.hpp>
- struct Moveable
- {
- Moveable()
- : wasCopyCalled(false), wasMoveCalled(false)
- {
- }
- Moveable(const Moveable& orig)
- : wasCopyCalled(true), wasMoveCalled(false)
- {
- }
- Moveable(Moveable&& orig)
- : wasCopyCalled(false), wasMoveCalled(true)
- {
- }
- bool wasCopyCalled;
- bool wasMoveCalled;
- };
- class CreatedFromMove
- {
- public:
- CreatedFromMove(Moveable moveable)
- : m_moveable(moveable)
- {
- AssertThat(moveable.wasCopyCalled, ut11::Is::False);
- AssertThat(moveable.wasMoveCalled, ut11::Is::True);
- }
- private:
- Moveable m_moveable;
- };
- class CreatedFromCopy
- {
- public:
- CreatedFromCopy(Moveable moveable)
- : m_moveable(moveable)
- {
- AssertThat(moveable.wasCopyCalled, ut11::Is::True);
- AssertThat(moveable.wasMoveCalled, ut11::Is::False);
- }
- private:
- Moveable m_moveable;
- };
- class MoveTests : public ut11::TestFixture
- {
- public:
- virtual void Run()
- {
- Then("attempting the movement results in the movement constructor being used", [&]() {
- Moveable testObject;
- CreatedFromMove created(std::move(testObject));
- });
- Then("attempting the copy results in the copy constructor being used", [&]() {
- Moveable testObject;
- CreatedFromCopy created(testObject);
- });
- }
- };
- DeclareFixture(MoveTests);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement