@Override
	public void onDataReceived(@NonNull final BluetoothDevice device, @NonNull final Data data) {
		super.onDataReceived(device, data);

		final Calendar calendar = readDateTime(data, 0);
		if (calendar == null) {
			onInvalidDataReceived(device, data);
			return;
		}
		onDateTimeReceived(device, calendar);
	}
@Test
	public void onDateTimeReceived_dateNotKnown() {
		final DataReceivedCallback callback = new DateTimeDataCallback() {
			@Override
			public void onDateTimeReceived(@NonNull final BluetoothDevice device, @NonNull final Calendar calendar) {
				assertFalse("Year not set", calendar.isSet(Calendar.YEAR));
				assertFalse("Month not set", calendar.isSet(Calendar.MONTH));
				assertFalse("Day not set", calendar.isSet(Calendar.DATE));
				assertEquals("Hour", 18, calendar.get(Calendar.HOUR_OF_DAY));
				assertEquals("Minute", 26, calendar.get(Calendar.MINUTE));
				assertEquals("Second", 32, calendar.get(Calendar.SECOND));
				assertEquals("Milliseconds", 0, calendar.get(Calendar.MILLISECOND));
			}

			@Override
			public void onInvalidDataReceived(@NonNull final BluetoothDevice device, @NonNull final Data data) {
				assertEquals("Correct Date and Time reported as invalid", 1, 2);
			}
		};
		final Data data = new Data(new byte[] {(byte) 0x00, 0x00, 0, 0, 18, 26, 32 });
		callback.onDataReceived(null, data);
	}