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 50 100 150 Line Coverage (%) Cyclomatic Complexity Lucent\Http\Message\ServerRequest — Coverage: 71.8% | Lines: 174 | Complexity: 99 Lucent\Http\Message\Stream — Coverage: 76.2% | Lines: 147 | Complexity: 68 Lucent\Http\Message\Uri — Coverage: 96.5% | Lines: 143 | Complexity: 86 Lucent\Http\Message\AbstractMessage — Coverage: 92.0% | Lines: 75 | Complexity: 38 Lucent\Http\Message\UploadedFile — Coverage: 62.7% | Lines: 67 | Complexity: 35 Lucent\Http\Message\UriResolver — Coverage: 90.0% | Lines: 60 | Complexity: 23 Lucent\Http\Message\Response — Coverage: 94.7% | Lines: 57 | Complexity: 22 Lucent\Http\Message\Stream\LazyStream — Coverage: 90.6% | Lines: 53 | Complexity: 25 Lucent\Http\Message\Stream\IteratorStream — Coverage: 88.5% | Lines: 52 | Complexity: 29 Lucent\Http\Message\Request — Coverage: 85.3% | Lines: 34 | Complexity: 19 Lucent\Http\Message\RequestContext — Coverage: 70.6% | Lines: 34 | Complexity: 28 Lucent\Http\Message\Factory\HttpFactory — Coverage: 79.4% | Lines: 34 | Complexity: 17 Lucent\Http\Message\Factory\LucentResponseFactory — Coverage: 100.0% | Lines: 9 | Complexity: 5

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 20 Line Coverage (%) Cyclomatic Complexity Lucent\Http\Message\UriResolver::removeDotSegments — Coverage: 88.5% | Lines: 26 | Complexity: 11 Lucent\Http\Message\ServerRequest::create — Coverage: 100.0% | Lines: 25 | Complexity: 10 Lucent\Http\Message\UriResolver::resolve — Coverage: 100.0% | Lines: 23 | Complexity: 6 Lucent\Http\Message\ServerRequest::capture — Coverage: 71.4% | Lines: 21 | Complexity: 8 Lucent\Http\Message\Stream::seek — Coverage: 65.0% | Lines: 20 | Complexity: 12 Lucent\Http\Message\Uri::isValid — Coverage: 89.5% | Lines: 19 | Complexity: 16 Lucent\Http\Message\UploadedFile::__construct — Coverage: 88.9% | Lines: 18 | Complexity: 8 Lucent\Http\Message\Uri::fromServer — Coverage: 88.9% | Lines: 18 | Complexity: 10 Lucent\Http\Message\ServerRequest::createUploadedFile — Coverage: 0.0% | Lines: 17 | Complexity: 8 Lucent\Http\Message\Uri::__toString — Coverage: 94.1% | Lines: 17 | Complexity: 10 Lucent\Http\Message\Stream\LazyStream::getOutput — Coverage: 100.0% | Lines: 17 | Complexity: 6 Lucent\Http\Message\RequestContext::matchesType — Coverage: 37.5% | Lines: 16 | Complexity: 16 Lucent\Http\Message\UploadedFile::moveTo — Coverage: 73.3% | Lines: 15 | Complexity: 8 Lucent\Http\Message\Stream::read — Coverage: 71.4% | Lines: 14 | Complexity: 6 Lucent\Http\Message\UploadedFile::moveStream — Coverage: 78.6% | Lines: 14 | Complexity: 6 Lucent\Http\Message\Uri::fromString — Coverage: 100.0% | Lines: 14 | Complexity: 6 Lucent\Http\Message\Response::json — Coverage: 84.6% | Lines: 13 | Complexity: 5 Lucent\Http\Message\Stream\IteratorStream::read — Coverage: 100.0% | Lines: 13 | Complexity: 7 Lucent\Http\Message\AbstractMessage::withAddedHeader — Coverage: 100.0% | Lines: 12 | Complexity: 3 Lucent\Http\Message\ServerRequest::extractHeaders — Coverage: 91.7% | Lines: 12 | Complexity: 7 Lucent\Http\Message\Stream::getContents — Coverage: 75.0% | Lines: 12 | Complexity: 5 Lucent\Http\Message\Stream::close — Coverage: 100.0% | Lines: 11 | Complexity: 3 Lucent\Http\Message\Stream::getSize — Coverage: 45.5% | Lines: 11 | Complexity: 5 Lucent\Http\Message\Stream::write — Coverage: 72.7% | Lines: 11 | Complexity: 5 Lucent\Http\Message\AbstractMessage::withHeader — Coverage: 100.0% | Lines: 10 | Complexity: 3 Lucent\Http\Message\RequestContext::requireTyped — Coverage: 100.0% | Lines: 10 | Complexity: 3 Lucent\Http\Message\Stream::fromResource — Coverage: 100.0% | Lines: 10 | Complexity: 2 Lucent\Http\Message\UploadedFile::getStream — Coverage: 0.0% | Lines: 10 | Complexity: 5 Lucent\Http\Message\Uri::encodeComponent — Coverage: 100.0% | Lines: 10 | Complexity: 3 Lucent\Http\Message\Stream\IteratorStream::getContents — Coverage: 90.0% | Lines: 10 | Complexity: 4 Lucent\Http\Message\Request::withUri — Coverage: 100.0% | Lines: 9 | Complexity: 5 Lucent\Http\Message\Response::withJsonEnvelope — Coverage: 100.0% | Lines: 9 | Complexity: 2 Lucent\Http\Message\ServerRequest::withUri — Coverage: 100.0% | Lines: 9 | Complexity: 5 Lucent\Http\Message\Stream::detach — Coverage: 100.0% | Lines: 9 | Complexity: 1 Lucent\Http\Message\AbstractMessage::withoutHeader — Coverage: 87.5% | Lines: 8 | Complexity: 2 Lucent\Http\Message\Response::withStatus — Coverage: 100.0% | Lines: 8 | Complexity: 4 Lucent\Http\Message\ServerRequest::__construct — Coverage: 100.0% | Lines: 8 | Complexity: 3 Lucent\Http\Message\Stream::tell — Coverage: 37.5% | Lines: 8 | Complexity: 4 Lucent\Http\Message\Stream::getMetadata — Coverage: 50.0% | Lines: 8 | Complexity: 4 Lucent\Http\Message\Uri::getAuthority — Coverage: 100.0% | Lines: 8 | Complexity: 4 Lucent\Http\Message\Factory\HttpFactory::createStreamFromFile — Coverage: 50.0% | Lines: 8 | Complexity: 3 Lucent\Http\Message\Request::__construct — Coverage: 100.0% | Lines: 7 | Complexity: 3 Lucent\Http\Message\Request::getRequestTarget — Coverage: 71.4% | Lines: 7 | Complexity: 4 Lucent\Http\Message\Response::withStream — Coverage: 100.0% | Lines: 7 | Complexity: 3 Lucent\Http\Message\ServerRequest::getRequestTarget — Coverage: 85.7% | Lines: 7 | Complexity: 4 Lucent\Http\Message\ServerRequest::normalizeUploadedFiles — Coverage: 42.9% | Lines: 7 | Complexity: 5 Lucent\Http\Message\Stream::fromString — Coverage: 100.0% | Lines: 7 | Complexity: 1 Lucent\Http\Message\Stream::__toString — Coverage: 71.4% | Lines: 7 | Complexity: 4 Lucent\Http\Message\Uri::withScheme — Coverage: 100.0% | Lines: 7 | Complexity: 3 Lucent\Http\Message\UriResolver::mergePaths — Coverage: 71.4% | Lines: 7 | Complexity: 4 Lucent\Http\Message\Factory\HttpFactory::createStream — Coverage: 85.7% | Lines: 7 | Complexity: 3 Lucent\Http\Message\AbstractMessage::withHeaderInternal — Coverage: 100.0% | Lines: 6 | Complexity: 3 Lucent\Http\Message\AbstractMessage::assertHeaderName — Coverage: 50.0% | Lines: 6 | Complexity: 5 Lucent\Http\Message\AbstractMessage::assertHeaderValue — Coverage: 66.7% | Lines: 6 | Complexity: 5 Lucent\Http\Message\Response::withRedirect — Coverage: 100.0% | Lines: 6 | Complexity: 2 Lucent\Http\Message\Response::withEventStream — Coverage: 100.0% | Lines: 6 | Complexity: 1 Lucent\Http\Message\ServerRequest::assertUploadedFilesTree — Coverage: 100.0% | Lines: 6 | Complexity: 4 Lucent\Http\Message\UploadedFile::moveFile — Coverage: 0.0% | Lines: 6 | Complexity: 4 Lucent\Http\Message\Uri::isValidHost — Coverage: 100.0% | Lines: 6 | Complexity: 4 Lucent\Http\Message\Factory\HttpFactory::createStreamFromResource — Coverage: 66.7% | Lines: 6 | Complexity: 3 Lucent\Http\Message\Stream\IteratorStream::__toString — Coverage: 100.0% | Lines: 6 | Complexity: 2 Lucent\Http\Message\Stream\LazyStream::detach — Coverage: 100.0% | Lines: 6 | Complexity: 1 Lucent\Http\Message\AbstractMessage::getHeader — Coverage: 100.0% | Lines: 5 | Complexity: 2 Lucent\Http\Message\Response::withJsonBody — Coverage: 80.0% | Lines: 5 | Complexity: 2 Lucent\Http\Message\ServerRequest::withMethod — Coverage: 80.0% | Lines: 5 | Complexity: 3 Lucent\Http\Message\ServerRequest::withParsedBody — Coverage: 100.0% | Lines: 5 | Complexity: 4 Lucent\Http\Message\ServerRequest::getParsedBodyValue — Coverage: 0.0% | Lines: 5 | Complexity: 5 Lucent\Http\Message\ServerRequest::validate — Coverage: 100.0% | Lines: 5 | Complexity: 1 Lucent\Http\Message\Stream::isWritableMode — Coverage: 100.0% | Lines: 5 | Complexity: 5 Lucent\Http\Message\Stream::eof — Coverage: 80.0% | Lines: 5 | Complexity: 3 Lucent\Http\Message\Uri::withUserInfo — Coverage: 100.0% | Lines: 5 | Complexity: 3 Lucent\Http\Message\Uri::withHost — Coverage: 100.0% | Lines: 5 | Complexity: 3 Lucent\Http\Message\Uri::withPort — Coverage: 100.0% | Lines: 5 | Complexity: 4 Lucent\Http\Message\Uri::filterPort — Coverage: 100.0% | Lines: 5 | Complexity: 5 Lucent\Http\Message\Factory\HttpFactory::createServerRequest — Coverage: 100.0% | Lines: 5 | Complexity: 2 Lucent\Http\Message\Stream\IteratorStream::detach — Coverage: 100.0% | Lines: 5 | Complexity: 1 Lucent\Http\Message\AbstractMessage::getHeaderLine — Coverage: 100.0% | Lines: 4 | Complexity: 2 Lucent\Http\Message\Request::withMethod — Coverage: 100.0% | Lines: 4 | Complexity: 1 Lucent\Http\Message\ServerRequest::withUploadedFiles — Coverage: 100.0% | Lines: 4 | Complexity: 1 Lucent\Http\Message\Uri::withPath — Coverage: 100.0% | Lines: 4 | Complexity: 1 Lucent\Http\Message\Uri::withQuery — Coverage: 100.0% | Lines: 4 | Complexity: 1 Lucent\Http\Message\Uri::withFragment — Coverage: 100.0% | Lines: 4 | Complexity: 1 Lucent\Http\Message\UriResolver::removeLastSegment — Coverage: 75.0% | Lines: 4 | Complexity: 2 Lucent\Http\Message\Stream\LazyStream::close — Coverage: 100.0% | Lines: 4 | Complexity: 1 Lucent\Http\Message\Stream\LazyStream::read — Coverage: 100.0% | Lines: 4 | Complexity: 1 Lucent\Http\Message\Stream\LazyStream::getContents — Coverage: 100.0% | Lines: 4 | Complexity: 1 Lucent\Http\Message\AbstractMessage::withProtocolVersion — Coverage: 100.0% | Lines: 3 | Complexity: 1 Lucent\Http\Message\AbstractMessage::getBody — Coverage: 100.0% | Lines: 3 | Complexity: 2 Lucent\Http\Message\AbstractMessage::withBody — Coverage: 100.0% | Lines: 3 | Complexity: 1 Lucent\Http\Message\Request::withRequestTarget — Coverage: 0.0% | Lines: 3 | Complexity: 1 Lucent\Http\Message\ServerRequest::withRequestTarget — Coverage: 100.0% | Lines: 3 | Complexity: 1 Lucent\Http\Message\ServerRequest::withCookieParams — Coverage: 100.0% | Lines: 3 | Complexity: 1 Lucent\Http\Message\ServerRequest::withQueryParams — Coverage: 100.0% | Lines: 3 | Complexity: 1 Lucent\Http\Message\ServerRequest::withAttribute — Coverage: 100.0% | Lines: 3 | Complexity: 1 Lucent\Http\Message\ServerRequest::withoutAttribute — Coverage: 100.0% | Lines: 3 | Complexity: 1 Lucent\Http\Message\ServerRequest::getUploadedFile — Coverage: 0.0% | Lines: 3 | Complexity: 3 Lucent\Http\Message\Stream::__construct — Coverage: 100.0% | Lines: 3 | Complexity: 1 Lucent\Http\Message\Factory\HttpFactory::createUploadedFile — Coverage: 100.0% | Lines: 3 | Complexity: 2 Lucent\Http\Message\Stream\IteratorStream::__construct — Coverage: 66.7% | Lines: 3 | Complexity: 2 Lucent\Http\Message\Stream\IteratorStream::close — Coverage: 100.0% | Lines: 3 | Complexity: 1 Lucent\Http\Message\Stream\IteratorStream::getMetadata — Coverage: 66.7% | Lines: 3 | Complexity: 2 Lucent\Http\Message\Stream\LazyStream::__toString — Coverage: 100.0% | Lines: 3 | Complexity: 2 Lucent\Http\Message\Stream\LazyStream::getSize — Coverage: 100.0% | Lines: 3 | Complexity: 2 Lucent\Http\Message\Stream\LazyStream::getMetadata — Coverage: 66.7% | Lines: 3 | Complexity: 2 Lucent\Http\Message\AbstractMessage::setHeaders — Coverage: 100.0% | Lines: 2 | Complexity: 2 Lucent\Http\Message\Request::assertValidMethod — Coverage: 100.0% | Lines: 2 | Complexity: 3 Lucent\Http\Message\RequestContext::fromRequest — Coverage: 100.0% | Lines: 2 | Complexity: 2 Lucent\Http\Message\RequestContext::getTyped — Coverage: 100.0% | Lines: 2 | Complexity: 2 Lucent\Http\Message\ServerRequest::getContext — Coverage: 0.0% | Lines: 2 | Complexity: 2 Lucent\Http\Message\ServerRequest::withContext — Coverage: 0.0% | Lines: 2 | Complexity: 1 Lucent\Http\Message\Uri::assertNoControlChars — Coverage: 100.0% | Lines: 2 | Complexity: 2 Lucent\Http\Message\Factory\HttpFactory::createRequest — Coverage: 100.0% | Lines: 2 | Complexity: 2 Lucent\Http\Message\Factory\HttpFactory::createResponse — Coverage: 100.0% | Lines: 2 | Complexity: 1 Lucent\Http\Message\Factory\LucentResponseFactory::createJsonEnvelopeResponse — Coverage: 100.0% | Lines: 2 | Complexity: 1 Lucent\Http\Message\Factory\LucentResponseFactory::createRedirectResponse — Coverage: 100.0% | Lines: 2 | Complexity: 1 Lucent\Http\Message\Factory\LucentResponseFactory::createEventStreamResponse — Coverage: 100.0% | Lines: 2 | Complexity: 1 Lucent\Http\Message\Factory\LucentResponseFactory::createStreamResponse — Coverage: 100.0% | Lines: 2 | Complexity: 1 Lucent\Http\Message\AbstractMessage::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\AbstractMessage::getProtocolVersion — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\AbstractMessage::getHeaders — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\AbstractMessage::hasHeader — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\AbstractMessage::setBody — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\AbstractMessage::normalizeHeaderName — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\AbstractMessage::sanitizeHeaderValue — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Request::getMethod — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Request::getUri — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\RequestContext::set — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\RequestContext::get — Coverage: 100.0% | Lines: 1 | Complexity: 2 Lucent\Http\Message\RequestContext::has — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\RequestContext::all — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Response::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Response::getStatusCode — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Response::getReasonPhrase — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\ServerRequest::getMethod — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\ServerRequest::getUri — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\ServerRequest::getServerParams — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\ServerRequest::getCookieParams — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\ServerRequest::getQueryParams — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\ServerRequest::getUploadedFiles — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\ServerRequest::getParsedBody — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\ServerRequest::getAttributes — Coverage: 0.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\ServerRequest::getAttribute — Coverage: 100.0% | Lines: 1 | Complexity: 2 Lucent\Http\Message\ServerRequest::getRouteInfo — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\ServerRequest::getUrlVars — Coverage: 0.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\ServerRequest::getUrlVar — Coverage: 0.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\ServerRequest::getQueryParam — Coverage: 0.0% | Lines: 1 | Complexity: 2 Lucent\Http\Message\ServerRequest::getCookie — Coverage: 0.0% | Lines: 1 | Complexity: 2 Lucent\Http\Message\ServerRequest::getServerParam — Coverage: 0.0% | Lines: 1 | Complexity: 2 Lucent\Http\Message\ServerRequest::withProtocolVersionInternal — Coverage: 0.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Stream::isReadableMode — Coverage: 100.0% | Lines: 1 | Complexity: 2 Lucent\Http\Message\Stream::__destruct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Stream::isSeekable — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Stream::rewind — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Stream::isWritable — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Stream::isReadable — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\UploadedFile::getSize — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\UploadedFile::getError — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\UploadedFile::getClientFilename — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\UploadedFile::getClientMediaType — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Uri::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Uri::getScheme — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Uri::getUserInfo — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Uri::getHost — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Uri::getPort — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Uri::getPath — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Uri::getQuery — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Uri::getFragment — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Uri::encodePath — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Uri::encodeQueryOrFragment — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Factory\HttpFactory::createUri — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Factory\LucentResponseFactory::createJsonResponse — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Stream\IteratorStream::getSize — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Stream\IteratorStream::tell — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Stream\IteratorStream::eof — Coverage: 100.0% | Lines: 1 | Complexity: 2 Lucent\Http\Message\Stream\IteratorStream::isSeekable — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Stream\IteratorStream::seek — Coverage: 0.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Stream\IteratorStream::rewind — Coverage: 0.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Stream\IteratorStream::isWritable — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Stream\IteratorStream::write — Coverage: 0.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Stream\IteratorStream::isReadable — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Stream\LazyStream::__construct — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Stream\LazyStream::tell — Coverage: 0.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Stream\LazyStream::eof — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Stream\LazyStream::isSeekable — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Stream\LazyStream::seek — Coverage: 0.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Stream\LazyStream::rewind — Coverage: 0.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Stream\LazyStream::isWritable — Coverage: 100.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Stream\LazyStream::write — Coverage: 0.0% | Lines: 1 | Complexity: 1 Lucent\Http\Message\Stream\LazyStream::isReadable — Coverage: 100.0% | Lines: 1 | Complexity: 1

Sorted by descending CRAP index.

Method CRAP Coverage
Lucent\Http\Message\RequestContext::matchesType78.5037.5%
Lucent\Http\Message\ServerRequest::createUploadedFile720.0%
Lucent\Http\Message\ServerRequest::getParsedBodyValue300.0%
Lucent\Http\Message\UploadedFile::getStream300.0%
Lucent\Http\Message\UploadedFile::moveFile200.0%
Lucent\Http\Message\Stream::seek18.1765.0%
Lucent\Http\Message\Uri::isValid16.3089.5%
Lucent\Http\Message\ServerRequest::getUploadedFile120.0%
Lucent\Http\Message\UriResolver::removeDotSegments11.1988.5%
Lucent\Http\Message\Uri::fromServer10.1488.9%
Lucent\Http\Message\Uri::__toString10.0294.1%
Lucent\Http\Message\ServerRequest::create10100.0%
Lucent\Http\Message\ServerRequest::normalizeUploadedFiles9.6642.9%
Lucent\Http\Message\ServerRequest::capture9.4971.4%
Lucent\Http\Message\UploadedFile::moveTo9.2173.3%
Lucent\Http\Message\Stream::getSize9.0645.5%
Lucent\Http\Message\AbstractMessage::assertHeaderName8.1250.0%
Lucent\Http\Message\UploadedFile::__construct8.0988.9%
Lucent\Http\Message\Stream::tell7.9137.5%
Lucent\Http\Message\ServerRequest::extractHeaders7.0391.7%
Lucent\Http\Message\Stream\IteratorStream::read7100.0%
Lucent\Http\Message\Stream::read6.8471.4%
Lucent\Http\Message\UploadedFile::moveStream6.3578.6%
Lucent\Http\Message\ServerRequest::getContext60.0%
Lucent\Http\Message\ServerRequest::getQueryParam60.0%
Lucent\Http\Message\ServerRequest::getCookie60.0%
Lucent\Http\Message\ServerRequest::getServerParam60.0%
Lucent\Http\Message\Stream::getMetadata6.0050.0%
Lucent\Http\Message\Uri::fromString6100.0%
Lucent\Http\Message\UriResolver::resolve6100.0%
Lucent\Http\Message\Stream\LazyStream::getOutput6100.0%
Lucent\Http\Message\AbstractMessage::assertHeaderValue5.9366.7%
Lucent\Http\Message\Stream::write5.5172.7%
Lucent\Http\Message\Stream::getContents5.3975.0%
Lucent\Http\Message\Response::json5.0984.6%
Lucent\Http\Message\Request::withUri5100.0%
Lucent\Http\Message\ServerRequest::withUri5100.0%
Lucent\Http\Message\Stream::isWritableMode5100.0%
Lucent\Http\Message\Uri::filterPort5100.0%
Lucent\Http\Message\Request::getRequestTarget4.3771.4%
Lucent\Http\Message\Stream::__toString4.3771.4%
Lucent\Http\Message\UriResolver::mergePaths4.3771.4%
Lucent\Http\Message\Factory\HttpFactory::createStreamFromFile4.1250.0%
Lucent\Http\Message\ServerRequest::getRequestTarget4.0585.7%
Lucent\Http\Message\Stream\IteratorStream::getContents4.0290.0%
Lucent\Http\Message\Response::withStatus4100.0%
Lucent\Http\Message\ServerRequest::assertUploadedFilesTree4100.0%
Lucent\Http\Message\ServerRequest::withParsedBody4100.0%
Lucent\Http\Message\Uri::getAuthority4100.0%
Lucent\Http\Message\Uri::withPort4100.0%
Lucent\Http\Message\Uri::isValidHost4100.0%
Lucent\Http\Message\Factory\HttpFactory::createStreamFromResource3.3366.7%
Lucent\Http\Message\ServerRequest::withMethod3.0780.0%
Lucent\Http\Message\Stream::eof3.0780.0%
Lucent\Http\Message\Factory\HttpFactory::createStream3.0385.7%
Lucent\Http\Message\AbstractMessage::withHeader3100.0%
Lucent\Http\Message\AbstractMessage::withAddedHeader3100.0%
Lucent\Http\Message\AbstractMessage::withHeaderInternal3100.0%
Lucent\Http\Message\Request::__construct3100.0%
Lucent\Http\Message\Request::assertValidMethod3100.0%
Lucent\Http\Message\RequestContext::requireTyped3100.0%
Lucent\Http\Message\Response::withStream3100.0%
Lucent\Http\Message\ServerRequest::__construct3100.0%
Lucent\Http\Message\Stream::close3100.0%
Lucent\Http\Message\Uri::withScheme3100.0%
Lucent\Http\Message\Uri::withUserInfo3100.0%
Lucent\Http\Message\Uri::withHost3100.0%
Lucent\Http\Message\Uri::encodeComponent3100.0%
Lucent\Http\Message\Stream\IteratorStream::__construct2.1566.7%
Lucent\Http\Message\Stream\IteratorStream::getMetadata2.1566.7%
Lucent\Http\Message\Stream\LazyStream::getMetadata2.1566.7%
Lucent\Http\Message\UriResolver::removeLastSegment2.0675.0%
Lucent\Http\Message\Response::withJsonBody2.0380.0%
Lucent\Http\Message\AbstractMessage::withoutHeader2.0187.5%
Lucent\Http\Message\AbstractMessage::getHeader2100.0%
Lucent\Http\Message\AbstractMessage::getHeaderLine2100.0%
Lucent\Http\Message\AbstractMessage::getBody2100.0%
Lucent\Http\Message\AbstractMessage::setHeaders2100.0%
Lucent\Http\Message\Request::withRequestTarget20.0%
Lucent\Http\Message\RequestContext::fromRequest2100.0%
Lucent\Http\Message\RequestContext::get2100.0%
Lucent\Http\Message\RequestContext::getTyped2100.0%
Lucent\Http\Message\Response::withJsonEnvelope2100.0%
Lucent\Http\Message\Response::withRedirect2100.0%
Lucent\Http\Message\ServerRequest::getAttributes20.0%
Lucent\Http\Message\ServerRequest::getAttribute2100.0%
Lucent\Http\Message\ServerRequest::getUrlVars20.0%
Lucent\Http\Message\ServerRequest::getUrlVar20.0%
Lucent\Http\Message\ServerRequest::withContext20.0%
Lucent\Http\Message\ServerRequest::withProtocolVersionInternal20.0%
Lucent\Http\Message\Stream::fromResource2100.0%
Lucent\Http\Message\Stream::isReadableMode2100.0%
Lucent\Http\Message\Uri::assertNoControlChars2100.0%
Lucent\Http\Message\Factory\HttpFactory::createRequest2100.0%
Lucent\Http\Message\Factory\HttpFactory::createServerRequest2100.0%
Lucent\Http\Message\Factory\HttpFactory::createUploadedFile2100.0%
Lucent\Http\Message\Stream\IteratorStream::__toString2100.0%
Lucent\Http\Message\Stream\IteratorStream::eof2100.0%
Lucent\Http\Message\Stream\IteratorStream::seek20.0%
Lucent\Http\Message\Stream\IteratorStream::rewind20.0%
Lucent\Http\Message\Stream\IteratorStream::write20.0%
Lucent\Http\Message\Stream\LazyStream::__toString2100.0%
Lucent\Http\Message\Stream\LazyStream::getSize2100.0%
Lucent\Http\Message\Stream\LazyStream::tell20.0%
Lucent\Http\Message\Stream\LazyStream::seek20.0%
Lucent\Http\Message\Stream\LazyStream::rewind20.0%
Lucent\Http\Message\Stream\LazyStream::write20.0%
Lucent\Http\Message\AbstractMessage::__construct1100.0%
Lucent\Http\Message\AbstractMessage::getProtocolVersion1100.0%
Lucent\Http\Message\AbstractMessage::withProtocolVersion1100.0%
Lucent\Http\Message\AbstractMessage::getHeaders1100.0%
Lucent\Http\Message\AbstractMessage::hasHeader1100.0%
Lucent\Http\Message\AbstractMessage::withBody1100.0%
Lucent\Http\Message\AbstractMessage::setBody1100.0%
Lucent\Http\Message\AbstractMessage::normalizeHeaderName1100.0%
Lucent\Http\Message\AbstractMessage::sanitizeHeaderValue1100.0%
Lucent\Http\Message\Request::getMethod1100.0%
Lucent\Http\Message\Request::withMethod1100.0%
Lucent\Http\Message\Request::getUri1100.0%
Lucent\Http\Message\RequestContext::set1100.0%
Lucent\Http\Message\RequestContext::has1100.0%
Lucent\Http\Message\RequestContext::all1100.0%
Lucent\Http\Message\Response::__construct1100.0%
Lucent\Http\Message\Response::getStatusCode1100.0%
Lucent\Http\Message\Response::getReasonPhrase1100.0%
Lucent\Http\Message\Response::withEventStream1100.0%
Lucent\Http\Message\ServerRequest::withRequestTarget1100.0%
Lucent\Http\Message\ServerRequest::getMethod1100.0%
Lucent\Http\Message\ServerRequest::getUri1100.0%
Lucent\Http\Message\ServerRequest::getServerParams1100.0%
Lucent\Http\Message\ServerRequest::getCookieParams1100.0%
Lucent\Http\Message\ServerRequest::withCookieParams1100.0%
Lucent\Http\Message\ServerRequest::getQueryParams1100.0%
Lucent\Http\Message\ServerRequest::withQueryParams1100.0%
Lucent\Http\Message\ServerRequest::getUploadedFiles1100.0%
Lucent\Http\Message\ServerRequest::withUploadedFiles1100.0%
Lucent\Http\Message\ServerRequest::getParsedBody1100.0%
Lucent\Http\Message\ServerRequest::withAttribute1100.0%
Lucent\Http\Message\ServerRequest::withoutAttribute1100.0%
Lucent\Http\Message\ServerRequest::getRouteInfo1100.0%
Lucent\Http\Message\ServerRequest::validate1100.0%
Lucent\Http\Message\Stream::__construct1100.0%
Lucent\Http\Message\Stream::fromString1100.0%
Lucent\Http\Message\Stream::__destruct1100.0%
Lucent\Http\Message\Stream::detach1100.0%
Lucent\Http\Message\Stream::isSeekable1100.0%
Lucent\Http\Message\Stream::rewind1100.0%
Lucent\Http\Message\Stream::isWritable1100.0%
Lucent\Http\Message\Stream::isReadable1100.0%
Lucent\Http\Message\UploadedFile::getSize1100.0%
Lucent\Http\Message\UploadedFile::getError1100.0%
Lucent\Http\Message\UploadedFile::getClientFilename1100.0%
Lucent\Http\Message\UploadedFile::getClientMediaType1100.0%
Lucent\Http\Message\Uri::__construct1100.0%
Lucent\Http\Message\Uri::getScheme1100.0%
Lucent\Http\Message\Uri::getUserInfo1100.0%
Lucent\Http\Message\Uri::getHost1100.0%
Lucent\Http\Message\Uri::getPort1100.0%
Lucent\Http\Message\Uri::getPath1100.0%
Lucent\Http\Message\Uri::getQuery1100.0%
Lucent\Http\Message\Uri::getFragment1100.0%
Lucent\Http\Message\Uri::withPath1100.0%
Lucent\Http\Message\Uri::withQuery1100.0%
Lucent\Http\Message\Uri::withFragment1100.0%
Lucent\Http\Message\Uri::encodePath1100.0%
Lucent\Http\Message\Uri::encodeQueryOrFragment1100.0%
Lucent\Http\Message\Factory\HttpFactory::createResponse1100.0%
Lucent\Http\Message\Factory\HttpFactory::createUri1100.0%
Lucent\Http\Message\Factory\LucentResponseFactory::createJsonResponse1100.0%
Lucent\Http\Message\Factory\LucentResponseFactory::createJsonEnvelopeResponse1100.0%
Lucent\Http\Message\Factory\LucentResponseFactory::createRedirectResponse1100.0%
Lucent\Http\Message\Factory\LucentResponseFactory::createEventStreamResponse1100.0%
Lucent\Http\Message\Factory\LucentResponseFactory::createStreamResponse1100.0%
Lucent\Http\Message\Stream\IteratorStream::close1100.0%
Lucent\Http\Message\Stream\IteratorStream::detach1100.0%
Lucent\Http\Message\Stream\IteratorStream::getSize1100.0%
Lucent\Http\Message\Stream\IteratorStream::tell1100.0%
Lucent\Http\Message\Stream\IteratorStream::isSeekable1100.0%
Lucent\Http\Message\Stream\IteratorStream::isWritable1100.0%
Lucent\Http\Message\Stream\IteratorStream::isReadable1100.0%
Lucent\Http\Message\Stream\LazyStream::__construct1100.0%
Lucent\Http\Message\Stream\LazyStream::close1100.0%
Lucent\Http\Message\Stream\LazyStream::detach1100.0%
Lucent\Http\Message\Stream\LazyStream::eof1100.0%
Lucent\Http\Message\Stream\LazyStream::isSeekable1100.0%
Lucent\Http\Message\Stream\LazyStream::isWritable1100.0%
Lucent\Http\Message\Stream\LazyStream::isReadable1100.0%
Lucent\Http\Message\Stream\LazyStream::read1100.0%
Lucent\Http\Message\Stream\LazyStream::getContents1100.0%