parent
							
								
									fb95d86b39
								
							
						
					
					
						commit
						bd1729d5be
					
				| @ -0,0 +1,47 @@ | ||||
| /* Copyright 2017 Fred Sundvik
 | ||||
|  * | ||||
|  * This program is free software: you can redistribute it and/or modify | ||||
|  * it under the terms of the GNU General Public License as published by | ||||
|  * the Free Software Foundation, either version 2 of the License, or | ||||
|  * (at your option) any later version. | ||||
|  * | ||||
|  * This program is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  * GNU General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU General Public License | ||||
|  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||
|  */ | ||||
| 
 | ||||
|  #include "keyboard_report_util.h" | ||||
|  using namespace testing; | ||||
| 
 | ||||
| bool operator==(const report_keyboard_t& lhs, const report_keyboard_t& rhs) { | ||||
|     return memcmp(lhs.raw, rhs.raw, sizeof(lhs.raw))==0; | ||||
| } | ||||
| 
 | ||||
| std::ostream& operator<<(std::ostream& stream, const report_keyboard_t& value) { | ||||
|     stream << "Keyboard report:" << std::endl; | ||||
|     stream << (uint32_t)value.keys[0] << std::endl; | ||||
|     return stream; | ||||
| } | ||||
| 
 | ||||
| KeyboardReportMatcher::KeyboardReportMatcher(const std::vector<uint8_t>& keys) { | ||||
|     memset(m_report.raw, 0, sizeof(m_report.raw)); | ||||
|     for (auto k: keys) { | ||||
|         add_key_to_report(&m_report, k); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| bool KeyboardReportMatcher::MatchAndExplain(report_keyboard_t& report, MatchResultListener* listener) const { | ||||
|     return m_report == report; | ||||
| } | ||||
| 
 | ||||
| void KeyboardReportMatcher::DescribeTo(::std::ostream* os) const { | ||||
|     *os << "is equal to " << m_report; | ||||
| } | ||||
| 
 | ||||
| void KeyboardReportMatcher::DescribeNegationTo(::std::ostream* os) const { | ||||
|     *os << "is not equal to " << m_report; | ||||
| } | ||||
| @ -0,0 +1,39 @@ | ||||
| /* Copyright 2017 Fred Sundvik
 | ||||
|  * | ||||
|  * This program is free software: you can redistribute it and/or modify | ||||
|  * it under the terms of the GNU General Public License as published by | ||||
|  * the Free Software Foundation, either version 2 of the License, or | ||||
|  * (at your option) any later version. | ||||
|  * | ||||
|  * This program is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  * GNU General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU General Public License | ||||
|  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | ||||
|  */ | ||||
| 
 | ||||
| #pragma once | ||||
| #include "report.h" | ||||
| #include <ostream> | ||||
| #include "gmock/gmock.h" | ||||
| 
 | ||||
| bool operator==(const report_keyboard_t& lhs, const report_keyboard_t& rhs); | ||||
| std::ostream& operator<<(std::ostream& stream, const report_keyboard_t& value); | ||||
| 
 | ||||
| class KeyboardReportMatcher : public testing::MatcherInterface<report_keyboard_t&> { | ||||
|  public: | ||||
|     KeyboardReportMatcher(const std::vector<uint8_t>& keys); | ||||
|     virtual bool MatchAndExplain(report_keyboard_t& report, testing::MatchResultListener* listener) const override; | ||||
|     virtual void DescribeTo(::std::ostream* os) const override; | ||||
|     virtual void DescribeNegationTo(::std::ostream* os) const override; | ||||
| private: | ||||
|     report_keyboard_t m_report; | ||||
| }; | ||||
| 
 | ||||
| 
 | ||||
| template<typename... Ts> | ||||
| inline testing::Matcher<report_keyboard_t&> KeyboardReport(Ts... keys) { | ||||
|     return testing::MakeMatcher(new KeyboardReportMatcher(std::vector<uint8_t>({keys...}))); | ||||
| } | ||||
					Loading…
					
					
				
		Reference in new issue
	
	 Fred Sundvik
						Fred Sundvik