validateWrite method

  1. @visibleForTesting
void validateWrite()

Validates if a write operation is allowed in the current state

Implementation

@visibleForTesting
void validateWrite() {
  switch (_state) {
    case XXHandshakeState.initial:
      if (!_isInitiator) {
        throw StateError('Responder cannot send first message');
      }
      break;
    case XXHandshakeState.sentE:
      if (_isInitiator) {
        throw StateError('Initiator cannot send second message');
      }
      break;
    case XXHandshakeState.sentEES:
      if (!_isInitiator) {
        throw StateError('Responder cannot send third message');
      }
      break;
    case XXHandshakeState.complete:
      throw StateError('Cannot write message in completed state');
    case XXHandshakeState.error:
      throw StateError('Cannot write message in error state');
  }
}