diff --git a/src/arduino/SPI.h b/src/arduino/SPI.h index 2b83340..9db4e5b 100644 --- a/src/arduino/SPI.h +++ b/src/arduino/SPI.h @@ -70,10 +70,20 @@ #endif class SPISettings { + private: + uint32_t clock; + uint8_t bitOrder; + uint8_t dataMode; + public: - SPISettings(uint32_t clock, uint8_t bitOrder, uint8_t dataMode) {} + SPISettings(uint32_t clock, uint8_t bitOrder, uint8_t dataMode): clock(clock), bitOrder(bitOrder), dataMode(dataMode) {} SPISettings() { SPISettings(4000000, MSBFIRST, SPI_MODE0); } friend class SPIClass; + + bool operator==(const SPISettings &other) const { + return (clock == other.clock) && (bitOrder == other.bitOrder) && + (dataMode == other.dataMode); + } }; class SPIClass { diff --git a/test/test_spi.h b/test/test_spi.h index d7277fe..1b57c48 100644 --- a/test/test_spi.h +++ b/test/test_spi.h @@ -11,13 +11,13 @@ void test_basics(void) { When(OverloadedMethod(ArduinoFake(SPI), begin, void(void))).AlwaysReturn(); When(OverloadedMethod(ArduinoFake(SPI), end, void(void))).AlwaysReturn(); -// When(OverloadedMethod(ArduinoFake(SPI), beginTransaction, void(SPISettings)).Using(settings)).AlwaysReturn(); + When(OverloadedMethod(ArduinoFake(SPI), beginTransaction, void(SPISettings)).Using(settings)).AlwaysReturn(); When(OverloadedMethod(ArduinoFake(SPI), endTransaction, void(void))).AlwaysReturn(); When(OverloadedMethod(ArduinoFake(SPI), transfer, uint8_t(uint8_t)).Using(buffer1)).AlwaysReturn(); // When(OverloadedMethod(ArduinoFake(SPI), transfer, void(void*, size_t)).Using(buffer2,sizeof(buffer2))).AlwaysReturn(); SPI.begin(); -// SPI.beginTransaction(settings); + SPI.beginTransaction(settings); SPI.transfer(0x01); // SPI.transfer(buffer2, sizeof(buffer2)); SPI.endTransaction(); @@ -25,7 +25,7 @@ void test_basics(void) { Verify(OverloadedMethod(ArduinoFake(SPI), begin, void(void))).Once(); Verify(OverloadedMethod(ArduinoFake(SPI), end, void(void))).Once(); -// Verify(OverloadedMethod(ArduinoFake(SPI), beginTransaction, void(SPISettings))).Once(); + Verify(OverloadedMethod(ArduinoFake(SPI), beginTransaction, void(SPISettings))).Once(); Verify(OverloadedMethod(ArduinoFake(SPI), endTransaction, void(void))).Once(); Verify(OverloadedMethod(ArduinoFake(SPI), transfer, uint8_t(uint8_t))).Once(); // Verify(OverloadedMethod(ArduinoFake(SPI), transfer, void(void*, size_t))).Once();