Classes

Line coverage against cyclomatic complexity. Bubble size is the number of executable lines; hover for details, click to navigate.

0% 20% 40% 60% 80% 100% 0 10 20 30 40 50 Line Coverage (%) Cyclomatic Complexity Stewart\Mqtt\ReconnectingMqttLink — Coverage: 83.5% | Lines: 79 | Complexity: 35 Stewart\Mqtt\Connection\MqttConnection — Coverage: 74.4% | Lines: 78 | Complexity: 38 Stewart\Mqtt\Packet\PacketReader — Coverage: 95.5% | Lines: 44 | Complexity: 21 Stewart\Mqtt\Connection\MqttConnector — Coverage: 89.3% | Lines: 28 | Complexity: 9 Stewart\Mqtt\Packet\PacketEncoder — Coverage: 100.0% | Lines: 28 | Complexity: 13 Stewart\Mqtt\OutboundMqttQueue — Coverage: 100.0% | Lines: 17 | Complexity: 11 Stewart\Mqtt\Packet\PacketBodyReader — Coverage: 100.0% | Lines: 16 | Complexity: 12 Stewart\Mqtt\Packet\PacketBytes — Coverage: 90.0% | Lines: 10 | Complexity: 6 Stewart\Mqtt\Exception\MqttClientError — Coverage: 0.0% | Lines: 8 | Complexity: 8 Stewart\Mqtt\Packet\ConnectReturnCode — Coverage: 0.0% | Lines: 7 | Complexity: 7 Stewart\Mqtt\Packet\PacketType — Coverage: 0.0% | Lines: 3 | Complexity: 3 Stewart\Mqtt\Exception\MqttClientException — Coverage: 100.0% | Lines: 2 | Complexity: 2 Stewart\Mqtt\Packet\ConnAckPacket — Coverage: 0.0% | Lines: 2 | Complexity: 2 Stewart\Mqtt\Packet\PubAckPacket — Coverage: 0.0% | Lines: 2 | Complexity: 2 Stewart\Mqtt\Packet\PublishPacket — Coverage: 0.0% | Lines: 2 | Complexity: 2 Stewart\Mqtt\Packet\SubAckPacket — Coverage: 0.0% | Lines: 2 | Complexity: 2 Stewart\Mqtt\Packet\UnsubAckPacket — Coverage: 0.0% | Lines: 2 | Complexity: 2 Stewart\Mqtt\PendingMqttMessage — Coverage: 100.0% | Lines: 2 | Complexity: 2 Stewart\Mqtt\ReconnectingMqttLinkFactory — Coverage: 0.0% | Lines: 2 | Complexity: 2 Stewart\Mqtt\Packet\PingRespPacket — Coverage: 0.0% | Lines: 1 | Complexity: 1

Sorted by descending CRAP index.

Methods

Line coverage against cyclomatic complexity. Bubble size is the number of executable lines; hover for details, click to navigate.

0% 20% 40% 60% 80% 100% 0 5 10 15 Line Coverage (%) Cyclomatic Complexity Stewart\Mqtt\Packet\PacketReader::decodePacket — Coverage: 89.5% | Lines: 19 | Complexity: 10 Stewart\Mqtt\Packet\PacketEncoder::encodeConnect — Coverage: 100.0% | Lines: 16 | Complexity: 5 Stewart\Mqtt\ReconnectingMqttLink::runSession — Coverage: 93.8% | Lines: 16 | Complexity: 3 Stewart\Mqtt\Connection\MqttConnection::scheduleKeepalive — Coverage: 84.6% | Lines: 13 | Complexity: 4 Stewart\Mqtt\ReconnectingMqttLink::attemptConnection — Coverage: 100.0% | Lines: 13 | Complexity: 5 Stewart\Mqtt\Connection\MqttConnection::finishClosing — Coverage: 100.0% | Lines: 11 | Complexity: 3 Stewart\Mqtt\ReconnectingMqttLink::keepConnected — Coverage: 100.0% | Lines: 11 | Complexity: 4 Stewart\Mqtt\Connection\MqttConnector::openConnection — Coverage: 100.0% | Lines: 10 | Complexity: 2 Stewart\Mqtt\Packet\PacketReader::readRemainingLength — Coverage: 100.0% | Lines: 9 | Complexity: 3 Stewart\Mqtt\ReconnectingMqttLink::publishMessage — Coverage: 66.7% | Lines: 9 | Complexity: 5 Stewart\Mqtt\Exception\MqttClientError::messageTemplate — Coverage: 0.0% | Lines: 8 | Complexity: 8 Stewart\Mqtt\Connection\MqttConnection::publishMessage — Coverage: 71.4% | Lines: 7 | Complexity: 2 Stewart\Mqtt\Connection\MqttConnection::writePacket — Coverage: 28.6% | Lines: 7 | Complexity: 3 Stewart\Mqtt\Connection\MqttConnector::encodeConnect — Coverage: 100.0% | Lines: 7 | Complexity: 1 Stewart\Mqtt\Packet\ConnectReturnCode::describeRefusal — Coverage: 0.0% | Lines: 7 | Complexity: 7 Stewart\Mqtt\Connection\MqttConnector::acceptHandshake — Coverage: 83.3% | Lines: 6 | Complexity: 3 Stewart\Mqtt\OutboundMqttQueue::replayPendingMessages — Coverage: 100.0% | Lines: 6 | Complexity: 3 Stewart\Mqtt\Packet\PacketBytes::encodeRemainingLength — Coverage: 100.0% | Lines: 6 | Complexity: 2 Stewart\Mqtt\Connection\MqttConnection::disconnect — Coverage: 60.0% | Lines: 5 | Complexity: 3 Stewart\Mqtt\Connection\MqttConnection::handlePacket — Coverage: 60.0% | Lines: 5 | Complexity: 6 Stewart\Mqtt\Connection\MqttConnection::allocatePacketId — Coverage: 80.0% | Lines: 5 | Complexity: 4 Stewart\Mqtt\OutboundMqttQueue::enqueueMessage — Coverage: 100.0% | Lines: 5 | Complexity: 2 Stewart\Mqtt\Packet\PacketBodyReader::readBytes — Coverage: 100.0% | Lines: 5 | Complexity: 2 Stewart\Mqtt\Packet\PacketEncoder::encodePublish — Coverage: 100.0% | Lines: 5 | Complexity: 3 Stewart\Mqtt\Packet\PacketReader::readPacket — Coverage: 100.0% | Lines: 5 | Complexity: 3 Stewart\Mqtt\Packet\PacketReader::decodeSubAck — Coverage: 100.0% | Lines: 5 | Complexity: 2 Stewart\Mqtt\ReconnectingMqttLink::publishAtLeastOnce — Coverage: 80.0% | Lines: 5 | Complexity: 3 Stewart\Mqtt\ReconnectingMqttLink::sendAtLeastOnce — Coverage: 60.0% | Lines: 5 | Complexity: 2 Stewart\Mqtt\ReconnectingMqttLink::subscribeOn — Coverage: 60.0% | Lines: 5 | Complexity: 3 Stewart\Mqtt\Connection\MqttConnection::subscribeFilter — Coverage: 100.0% | Lines: 4 | Complexity: 1 Stewart\Mqtt\Connection\MqttConnection::unsubscribeFilter — Coverage: 0.0% | Lines: 4 | Complexity: 1 Stewart\Mqtt\Connection\MqttConnection::readUntilClosed — Coverage: 100.0% | Lines: 4 | Complexity: 4 Stewart\Mqtt\Connection\MqttConnector::openSocket — Coverage: 50.0% | Lines: 4 | Complexity: 2 Stewart\Mqtt\Packet\PacketReader::decodePublish — Coverage: 100.0% | Lines: 4 | Complexity: 2 Stewart\Mqtt\ReconnectingMqttLink::startInBackground — Coverage: 75.0% | Lines: 4 | Complexity: 2 Stewart\Mqtt\Connection\MqttConnection::deliverPublish — Coverage: 100.0% | Lines: 3 | Complexity: 2 Stewart\Mqtt\Connection\MqttConnection::settleSubscription — Coverage: 100.0% | Lines: 3 | Complexity: 1 Stewart\Mqtt\Connection\MqttConnection::settleAck — Coverage: 33.3% | Lines: 3 | Complexity: 1 Stewart\Mqtt\Packet\PacketBodyReader::readRemainder — Coverage: 100.0% | Lines: 3 | Complexity: 1 Stewart\Mqtt\Packet\PacketType::isSentByServer — Coverage: 0.0% | Lines: 3 | Complexity: 3 Stewart\Mqtt\ReconnectingMqttLink::subscribeFilter — Coverage: 100.0% | Lines: 3 | Complexity: 2 Stewart\Mqtt\ReconnectingMqttLink::unsubscribeFilter — Coverage: 0.0% | Lines: 3 | Complexity: 2 Stewart\Mqtt\Connection\MqttConnection::startReading — Coverage: 100.0% | Lines: 2 | Complexity: 1 Stewart\Mqtt\Packet\PacketBodyReader::readUint16 — Coverage: 100.0% | Lines: 2 | Complexity: 3 Stewart\Mqtt\Packet\PacketBodyReader::assertFullyRead — Coverage: 100.0% | Lines: 2 | Complexity: 2 Stewart\Mqtt\Packet\PacketEncoder::encodeSubscribe — Coverage: 100.0% | Lines: 2 | Complexity: 1 Stewart\Mqtt\Packet\PacketEncoder::encodeUnsubscribe — Coverage: 100.0% | Lines: 2 | Complexity: 1 Stewart\Mqtt\Packet\PacketReader::decodeConnAck — Coverage: 100.0% | Lines: 2 | Complexity: 1 Stewart\Mqtt\ReconnectingMqttLink::close — Coverage: 100.0% | Lines: 2 | Complexity: 1 Stewart\Mqtt\ReconnectingMqttLink::waitBeforeReconnecting — Coverage: 100.0% | Lines: 2 | Complexity: 2 Stewart\Mqtt\Connection\MqttConnection::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\Connection\MqttConnection::awaitClosed — Coverage: 100.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\Connection\MqttConnector::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\Exception\MqttClientException::packetMalformed — Coverage: 100.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\Exception\MqttClientException::packetUnexpected — Coverage: 100.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\OutboundMqttQueue::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\OutboundMqttQueue::canHoldMessages — Coverage: 100.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\OutboundMqttQueue::isFull — Coverage: 100.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\OutboundMqttQueue::recordSendAttempt — Coverage: 100.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\OutboundMqttQueue::acknowledgeMessage — Coverage: 100.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\OutboundMqttQueue::countPending — Coverage: 100.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\Packet\ConnAckPacket::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\Packet\ConnAckPacket::getPacketType — Coverage: 0.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\Packet\PacketBodyReader::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\Packet\PacketBodyReader::readUint8 — Coverage: 100.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\Packet\PacketBodyReader::readString — Coverage: 100.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\Packet\PacketBodyReader::createMalformedException — Coverage: 100.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\Packet\PacketBytes::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\Packet\PacketBytes::assemblePacket — Coverage: 100.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\Packet\PacketBytes::encodeString — Coverage: 100.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\Packet\PacketBytes::encodeUint16 — Coverage: 100.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\Packet\PacketEncoder::encodePubAck — Coverage: 100.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\Packet\PacketEncoder::encodePingRequest — Coverage: 100.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\Packet\PacketEncoder::encodeDisconnect — Coverage: 100.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\Packet\PingRespPacket::getPacketType — Coverage: 0.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\Packet\PubAckPacket::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\Packet\PubAckPacket::getPacketType — Coverage: 0.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\Packet\PublishPacket::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\Packet\PublishPacket::getPacketType — Coverage: 0.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\Packet\SubAckPacket::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\Packet\SubAckPacket::getPacketType — Coverage: 0.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\Packet\UnsubAckPacket::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\Packet\UnsubAckPacket::getPacketType — Coverage: 0.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\PendingMqttMessage::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\PendingMqttMessage::recordSendAttempt — Coverage: 100.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\ReconnectingMqttLink::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\ReconnectingMqttLinkFactory::__construct — Coverage: 0.0% | Lines: 1 | Complexity: 1 Stewart\Mqtt\ReconnectingMqttLinkFactory::createMqttLink — Coverage: 0.0% | Lines: 1 | Complexity: 1

Sorted by descending CRAP index.

Method CRAP Coverage
Stewart\Mqtt\Exception\MqttClientError::messageTemplate720.0%
Stewart\Mqtt\Packet\ConnectReturnCode::describeRefusal560.0%
Stewart\Mqtt\Packet\PacketType::isSentByServer120.0%
Stewart\Mqtt\Packet\PacketReader::decodePacket10.1289.5%
Stewart\Mqtt\Connection\MqttConnection::handlePacket8.3060.0%
Stewart\Mqtt\Connection\MqttConnection::writePacket6.2828.6%
Stewart\Mqtt\ReconnectingMqttLink::unsubscribeFilter60.0%
Stewart\Mqtt\ReconnectingMqttLink::publishMessage5.9366.7%
Stewart\Mqtt\Packet\PacketEncoder::encodeConnect5100.0%
Stewart\Mqtt\ReconnectingMqttLink::attemptConnection5100.0%
Stewart\Mqtt\Connection\MqttConnection::allocatePacketId4.1380.0%
Stewart\Mqtt\Connection\MqttConnection::scheduleKeepalive4.0684.6%
Stewart\Mqtt\Connection\MqttConnection::readUntilClosed4100.0%
Stewart\Mqtt\ReconnectingMqttLink::keepConnected4100.0%
Stewart\Mqtt\Connection\MqttConnection::disconnect3.5860.0%
Stewart\Mqtt\ReconnectingMqttLink::subscribeOn3.5860.0%
Stewart\Mqtt\ReconnectingMqttLink::publishAtLeastOnce3.0780.0%
Stewart\Mqtt\Connection\MqttConnector::acceptHandshake3.0483.3%
Stewart\Mqtt\Connection\MqttConnection::finishClosing3100.0%
Stewart\Mqtt\OutboundMqttQueue::replayPendingMessages3100.0%
Stewart\Mqtt\Packet\PacketBodyReader::readUint163100.0%
Stewart\Mqtt\Packet\PacketEncoder::encodePublish3100.0%
Stewart\Mqtt\Packet\PacketReader::readPacket3100.0%
Stewart\Mqtt\Packet\PacketReader::readRemainingLength3100.0%
Stewart\Mqtt\ReconnectingMqttLink::runSession3.0093.8%
Stewart\Mqtt\Connection\MqttConnector::openSocket2.5050.0%
Stewart\Mqtt\ReconnectingMqttLink::sendAtLeastOnce2.2660.0%
Stewart\Mqtt\Connection\MqttConnection::publishMessage2.0971.4%
Stewart\Mqtt\ReconnectingMqttLink::startInBackground2.0675.0%
Stewart\Mqtt\Connection\MqttConnection::unsubscribeFilter20.0%
Stewart\Mqtt\Connection\MqttConnection::deliverPublish2100.0%
Stewart\Mqtt\Connection\MqttConnector::openConnection2100.0%
Stewart\Mqtt\OutboundMqttQueue::enqueueMessage2100.0%
Stewart\Mqtt\Packet\ConnAckPacket::__construct20.0%
Stewart\Mqtt\Packet\ConnAckPacket::getPacketType20.0%
Stewart\Mqtt\Packet\PacketBodyReader::assertFullyRead2100.0%
Stewart\Mqtt\Packet\PacketBodyReader::readBytes2100.0%
Stewart\Mqtt\Packet\PacketBytes::__construct20.0%
Stewart\Mqtt\Packet\PacketBytes::encodeRemainingLength2100.0%
Stewart\Mqtt\Packet\PacketReader::decodePublish2100.0%
Stewart\Mqtt\Packet\PacketReader::decodeSubAck2100.0%
Stewart\Mqtt\Packet\PingRespPacket::getPacketType20.0%
Stewart\Mqtt\Packet\PubAckPacket::__construct20.0%
Stewart\Mqtt\Packet\PubAckPacket::getPacketType20.0%
Stewart\Mqtt\Packet\PublishPacket::__construct20.0%
Stewart\Mqtt\Packet\PublishPacket::getPacketType20.0%
Stewart\Mqtt\Packet\SubAckPacket::__construct20.0%
Stewart\Mqtt\Packet\SubAckPacket::getPacketType20.0%
Stewart\Mqtt\Packet\UnsubAckPacket::__construct20.0%
Stewart\Mqtt\Packet\UnsubAckPacket::getPacketType20.0%
Stewart\Mqtt\ReconnectingMqttLink::subscribeFilter2100.0%
Stewart\Mqtt\ReconnectingMqttLink::waitBeforeReconnecting2100.0%
Stewart\Mqtt\ReconnectingMqttLinkFactory::__construct20.0%
Stewart\Mqtt\ReconnectingMqttLinkFactory::createMqttLink20.0%
Stewart\Mqtt\Connection\MqttConnection::settleAck1.3033.3%
Stewart\Mqtt\Connection\MqttConnection::__construct1100.0%
Stewart\Mqtt\Connection\MqttConnection::startReading1100.0%
Stewart\Mqtt\Connection\MqttConnection::subscribeFilter1100.0%
Stewart\Mqtt\Connection\MqttConnection::awaitClosed1100.0%
Stewart\Mqtt\Connection\MqttConnection::settleSubscription1100.0%
Stewart\Mqtt\Connection\MqttConnector::__construct1100.0%
Stewart\Mqtt\Connection\MqttConnector::encodeConnect1100.0%
Stewart\Mqtt\Exception\MqttClientException::packetMalformed1100.0%
Stewart\Mqtt\Exception\MqttClientException::packetUnexpected1100.0%
Stewart\Mqtt\OutboundMqttQueue::__construct1100.0%
Stewart\Mqtt\OutboundMqttQueue::canHoldMessages1100.0%
Stewart\Mqtt\OutboundMqttQueue::isFull1100.0%
Stewart\Mqtt\OutboundMqttQueue::recordSendAttempt1100.0%
Stewart\Mqtt\OutboundMqttQueue::acknowledgeMessage1100.0%
Stewart\Mqtt\OutboundMqttQueue::countPending1100.0%
Stewart\Mqtt\Packet\PacketBodyReader::__construct1100.0%
Stewart\Mqtt\Packet\PacketBodyReader::readUint81100.0%
Stewart\Mqtt\Packet\PacketBodyReader::readString1100.0%
Stewart\Mqtt\Packet\PacketBodyReader::readRemainder1100.0%
Stewart\Mqtt\Packet\PacketBodyReader::createMalformedException1100.0%
Stewart\Mqtt\Packet\PacketBytes::assemblePacket1100.0%
Stewart\Mqtt\Packet\PacketBytes::encodeString1100.0%
Stewart\Mqtt\Packet\PacketBytes::encodeUint161100.0%
Stewart\Mqtt\Packet\PacketEncoder::encodePubAck1100.0%
Stewart\Mqtt\Packet\PacketEncoder::encodeSubscribe1100.0%
Stewart\Mqtt\Packet\PacketEncoder::encodeUnsubscribe1100.0%
Stewart\Mqtt\Packet\PacketEncoder::encodePingRequest1100.0%
Stewart\Mqtt\Packet\PacketEncoder::encodeDisconnect1100.0%
Stewart\Mqtt\Packet\PacketReader::decodeConnAck1100.0%
Stewart\Mqtt\PendingMqttMessage::__construct1100.0%
Stewart\Mqtt\PendingMqttMessage::recordSendAttempt1100.0%
Stewart\Mqtt\ReconnectingMqttLink::__construct1100.0%
Stewart\Mqtt\ReconnectingMqttLink::close1100.0%