(These are just notes, at this point)
Arduino.Connect() - See how it does when the port is correct/incorrect.
Arduino.Disconnect() - See how it does when called multiple times, one time, verify functionality.
Arduino.GetAnalogValue(int pinNumber) -
- Confirm that when connected we get floating values.
- Confirm that when connected to ground we get zeros.
- Confirm that when connected to AREF we get 1023.
- Confirm that the default constructor finds a single attached Arduino running StandardFirmata.
- Confirm that the default constructor finds two attached Arduinos running StandardFirmata and doesn't throw.
- Confirm that the default constructor can identify an Arduino running StandardFirmata when there are several other serial devices connected.
Arduino(string portName, int baudRate, true
) - See that it opens the port correctly. Curious-what errors do we get if we use a bad port? Test that too.
Arduino.Firmata - Verify that the Firmata properties get filled in when a Firmata version request message is posted. This also tests post, btw.
Arduino.Events - Verify that when we're told to monitor ports or pins that we get notified when the port or pin values change.
Arduino.Post - Verify that posting all message types generates the expected behavior.
(still just notes, even thought the formatting looks better)
The ArduinoFinder class is used internally by Rhyduino to identify a connected Arduino by enumerating the list of active serial ports. There is nothing that can be tested here with unit tests, so all testing of this class will be done as a functional test.
This is a data class that doesn't serve much purpose other than to move data around. Additionally, there are no publicly exposed methods or properties (it's all internal). Therefore, I will not create unit tests for this class. It will be tested as
part of the end-to-end tests.
This is a fairly complex class that monitors the serial port and formats serial data into messages. Additionally, it's an internal class so it's complicated to test it from an external test class like this. Instead, I will test this class as part of
the end-to-end tests by sending it simulated serial data and confirming that it's parsed correctly.