Skip to content

Commit

Permalink
Change code to comply with tests
Browse files Browse the repository at this point in the history
If there is no decimal part for the timestamp, return an int instead
  • Loading branch information
Stephen Beirlaen committed Dec 23, 2020
1 parent 18788f1 commit f2e4775
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 7 deletions.
11 changes: 8 additions & 3 deletions src/Encoding/MicrosecondBasedDateConversion.php
Expand Up @@ -26,11 +26,16 @@ public function formatClaims(array $claims): array
return $claims;
}

/** @return float|string */
/** @return int|float */
private function convertDate(DateTimeImmutable $date)
{
$formattedTimestamp = $date->format('U.u');
$seconds = $date->format('U');
$microseconds = $date->format('u');

return floatval($formattedTimestamp);
if ((int) $microseconds === 0) {
return (int) $seconds;
}

return floatval($seconds . '.' . $microseconds);
}
}
2 changes: 1 addition & 1 deletion test/unit/Encoding/ChainedFormatterTest.php
Expand Up @@ -34,6 +34,6 @@ public function formatClaimsShouldApplyAllConfiguredFormatters(): void
$formatted = $formatter->formatClaims($claims);

self::assertSame('test', $formatted[RegisteredClaims::AUDIENCE]);
self::assertSame('1487285080.123456', $formatted[RegisteredClaims::EXPIRATION_TIME]);
self::assertSame(1487285080.123456, $formatted[RegisteredClaims::EXPIRATION_TIME]);
}
}
6 changes: 3 additions & 3 deletions test/unit/Encoding/MicrosecondBasedDateConversionTest.php
Expand Up @@ -36,8 +36,8 @@ public function dateClaimsHaveMicrosecondsOrSeconds(): void
$formatted = $formatter->formatClaims($claims);

self::assertSame(1487285080, $formatted[RegisteredClaims::ISSUED_AT]);
self::assertSame('1487285080.000123', $formatted[RegisteredClaims::NOT_BEFORE]);
self::assertSame('1487285080.123456', $formatted[RegisteredClaims::EXPIRATION_TIME]);
self::assertSame(1487285080.000123, $formatted[RegisteredClaims::NOT_BEFORE]);
self::assertSame(1487285080.123456, $formatted[RegisteredClaims::EXPIRATION_TIME]);
self::assertSame('test', $formatted['testing']); // this should remain untouched
}

Expand All @@ -62,7 +62,7 @@ public function notAllDateClaimsNeedToBeConfigured(): void
$formatted = $formatter->formatClaims($claims);

self::assertSame(1487285080, $formatted[RegisteredClaims::ISSUED_AT]);
self::assertSame('1487285080.123456', $formatted[RegisteredClaims::EXPIRATION_TIME]);
self::assertSame(1487285080.123456, $formatted[RegisteredClaims::EXPIRATION_TIME]);
self::assertSame('test', $formatted['testing']); // this should remain untouched
}
}

0 comments on commit f2e4775

Please sign in to comment.