Skip to content

TOTP: introduce new interface that prevents code reuse #108

TOTP: introduce new interface that prevents code reuse

TOTP: introduce new interface that prevents code reuse #108

Re-run triggered September 30, 2024 06:13
Status Failure
Total duration 1m 51s
Artifacts

integrate.yml

on: pull_request
0️⃣ Byte-level
4s
0️⃣ Byte-level
1️⃣ Syntax errors
32s
1️⃣ Syntax errors
3️⃣ Static Analysis
16s
3️⃣ Static Analysis
4️⃣ Coding Standards
24s
4️⃣ Coding Standards
5️⃣ Mutation Testing
58s
5️⃣ Mutation Testing
6️⃣ Rector Checkstyle
16s
6️⃣ Rector Checkstyle
7️⃣ Exported files
4s
7️⃣ Exported files
Matrix: 2️⃣ Unit and functional tests
Fit to window
Zoom out
Zoom in

Annotations

1 error and 10 warnings
4️⃣ Coding Standards
Process completed with exit code 2.
5️⃣ Mutation Testing: src/Factory.php#L24
Escaped Mutant for Mutator "Throw_": @@ @@ { try { $parsed_url = Url::fromString($uri); - $parsed_url->getScheme() === 'otpauth' || throw new InvalidArgumentException('Invalid scheme.'); + $parsed_url->getScheme() === 'otpauth' || new InvalidArgumentException('Invalid scheme.'); } catch (Throwable $throwable) { throw new InvalidArgumentException('Not a valid OTP provisioning URI', $throwable->getCode(), $throwable); }
5️⃣ Mutation Testing: src/Factory.php#L24
Escaped Mutant for Mutator "LogicalOrNegation": @@ @@ { try { $parsed_url = Url::fromString($uri); - $parsed_url->getScheme() === 'otpauth' || throw new InvalidArgumentException('Invalid scheme.'); + !($parsed_url->getScheme() === 'otpauth' || throw new InvalidArgumentException('Invalid scheme.')); } catch (Throwable $throwable) { throw new InvalidArgumentException('Not a valid OTP provisioning URI', $throwable->getCode(), $throwable); }
5️⃣ Mutation Testing: src/Factory.php#L63
Escaped Mutant for Mutator "LogicalOrNegation": @@ @@ return; } if ($otp->getIssuer() !== null) { - $result[0] === $otp->getIssuer() || throw new InvalidArgumentException('Invalid OTP: invalid issuer in parameter'); + !($result[0] === $otp->getIssuer() || throw new InvalidArgumentException('Invalid OTP: invalid issuer in parameter')); $otp->setIssuerIncludedAsParameter(true); } assert($result[0] !== '');
5️⃣ Mutation Testing: src/Factory.php#L66
Escaped Mutant for Mutator "MethodCallRemoval": @@ @@ } if ($otp->getIssuer() !== null) { $result[0] === $otp->getIssuer() || throw new InvalidArgumentException('Invalid OTP: invalid issuer in parameter'); - $otp->setIssuerIncludedAsParameter(true); + } assert($result[0] !== ''); $otp->setIssuer($result[0]);
5️⃣ Mutation Testing: src/Factory.php#L71
Escaped Mutant for Mutator "MethodCallRemoval": @@ @@ $otp->setIssuerIncludedAsParameter(true); } assert($result[0] !== ''); - $otp->setIssuer($result[0]); + } private static function createOTP(Url $parsed_url, ClockInterface $clock): OTPInterface {
5️⃣ Mutation Testing: src/HOTP.php#L39
Escaped Mutant for Mutator "MethodCallRemoval": @@ @@ $htop = new self($secret); $htop->setCounter(self::DEFAULT_COUNTER); $htop->setDigest(self::DEFAULT_DIGEST); - $htop->setDigits(self::DEFAULT_DIGITS); + return $htop; } public static function generate(): self
5️⃣ Mutation Testing: src/HOTP.php#L55
Escaped Mutant for Mutator "LogicalAnd": @@ @@ public function getCounter(): int { $value = $this->getParameter('counter'); - is_int($value) && $value >= 0 || throw new InvalidArgumentException('Invalid "counter" parameter.'); + is_int($value) || $value >= 0 || throw new InvalidArgumentException('Invalid "counter" parameter.'); return $value; } public function getProvisioningUri(): string
5️⃣ Mutation Testing: src/HOTP.php#L55
Escaped Mutant for Mutator "Throw_": @@ @@ public function getCounter(): int { $value = $this->getParameter('counter'); - is_int($value) && $value >= 0 || throw new InvalidArgumentException('Invalid "counter" parameter.'); + is_int($value) && $value >= 0 || new InvalidArgumentException('Invalid "counter" parameter.'); return $value; } public function getProvisioningUri(): string
5️⃣ Mutation Testing: src/HOTP.php#L55
Escaped Mutant for Mutator "LogicalOrNegation": @@ @@ public function getCounter(): int { $value = $this->getParameter('counter'); - is_int($value) && $value >= 0 || throw new InvalidArgumentException('Invalid "counter" parameter.'); + !(is_int($value) && $value >= 0 || throw new InvalidArgumentException('Invalid "counter" parameter.')); return $value; } public function getProvisioningUri(): string
5️⃣ Mutation Testing: src/HOTP.php#L62
Escaped Mutant for Mutator "ArrayItemRemoval": @@ @@ } public function getProvisioningUri(): string { - return $this->generateURI('hotp', ['counter' => $this->getCounter()]); + return $this->generateURI('hotp', []); } /** * If the counter is not provided, the OTP is verified at the actual counter.