public void HasVerifiedPostiveTest_ForPositiveUser_ShouldBeTrue() { var target = new PositiveUser("idporten", "pseudo-id-1", new PositiveTestResult { PositiveTestDate = DateTime.Today.AddDays(-3).Some() }, new VerificationRecord[0], new Mock <IVerificationLimit>().Object); target.HasVerifiedPostiveTest.Should().BeTrue(); }
public void Constructor_CreatesUserWithIdBasedOnProviderId() { var target = new PositiveUser("idporten", "pseudo-id-1", new PositiveTestResult { PositiveTestDate = DateTime.Today.AddDays(-3).Some() }, new VerificationRecord[0], new Mock <IVerificationLimit>().Object); target.Id.Should().NotBeEmpty(); }
public void GetCustomClaims_ForNonPositiveUser_ShouldContainVerifiedPostiveRoleAndTestDateClaim() { var testdata = DateTime.Today.AddDays(-3); var target = new PositiveUser("idporten", "pseudo-id-1", new PositiveTestResult { PositiveTestDate = testdata.Some() }, new VerificationRecord[0], new Mock <IVerificationLimit>().Object); target.GetCustomClaims().Should().Contain(c => c.Type == JwtClaimTypes.Role && c.Value == VerificationRoles.VerifiedPositive); target.GetCustomClaims().Should().Contain(c => c.Type == VerificationClaims.VerifiedPositiveTestDate && c.Value == testdata.ToString("yyyy-MM-dd")); }
private async Task <User> CreatePositiveUser(PositiveTestResult testResult, Command request) { var userIdClaim = FindUserIdClaim(request.ExternalClaims).ValueOr(() => throw new Exception("Unable to determine user-ID from external claims from provider: " + request.Provider)); var pseudonym = _pseudonymFactory.Create(request.Provider + ":" + userIdClaim.Value); var existingRecords = await _verificationRecordsRepository.RetrieveRecordsForPseudonym(pseudonym); var newRecord = new VerificationRecord(pseudonym); var verificationRecords = existingRecords.Concat(new[] { newRecord }); _logger.LogInformation("Verified positive user created after ID-porten login and MSIS lookup"); var postiveUser = new PositiveUser(request.Provider, userIdClaim.Value, testResult, verificationRecords, _verificationLimit); await _verificationRecordsRepository.SaveNewRecord(newRecord); return(postiveUser); }