Skip to content

Commit 99847bd

Browse files
committed
KeyEvent: Implement operator==
Resolves: #455
1 parent e2fa17f commit 99847bd

File tree

2 files changed

+32
-0
lines changed

2 files changed

+32
-0
lines changed

include/scratchcpp/keyevent.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ class LIBSCRATCHCPP_EXPORT KeyEvent
3131
Type type() const;
3232
const std::string &name() const;
3333

34+
friend bool operator==(const KeyEvent &ev1, const KeyEvent &ev2) { return ev1.name() == ev2.name(); }
35+
3436
private:
3537
spimpl::impl_ptr<KeyEventPrivate> impl;
3638
};

test/scratch_classes/keyevent_test.cpp

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,3 +213,33 @@ TEST(KeyEventTest, Constructors)
213213
ASSERT_EQ(event.name(), "down arrow");
214214
}
215215
}
216+
217+
TEST(KeyEventTest, EqualityOperator)
218+
{
219+
KeyEvent ev1(KeyEvent::Type::Any);
220+
KeyEvent ev2(KeyEvent::Type::Any);
221+
KeyEvent ev3(KeyEvent::Type::Space);
222+
KeyEvent ev4(KeyEvent::Type::Space);
223+
KeyEvent ev5(KeyEvent::Type::Left);
224+
KeyEvent ev6(KeyEvent::Type::Left);
225+
KeyEvent ev7(KeyEvent::Type::Right);
226+
KeyEvent ev8(KeyEvent::Type::Right);
227+
KeyEvent ev9("a");
228+
KeyEvent ev10("A");
229+
KeyEvent ev11("8");
230+
KeyEvent ev12("8");
231+
KeyEvent ev13("space");
232+
233+
ASSERT_TRUE(ev1 == ev2);
234+
ASSERT_TRUE(ev3 == ev4);
235+
ASSERT_TRUE(ev5 == ev6);
236+
ASSERT_TRUE(ev7 == ev8);
237+
ASSERT_TRUE(ev9 == ev10);
238+
ASSERT_TRUE(ev11 == ev12);
239+
ASSERT_TRUE(ev3 == ev13);
240+
241+
ASSERT_FALSE(ev1 == ev3);
242+
ASSERT_FALSE(ev4 == ev6);
243+
ASSERT_FALSE(ev7 == ev10);
244+
ASSERT_FALSE(ev11 == ev13);
245+
}

0 commit comments

Comments
 (0)