Exemplo n.º 1
0
        public void GetCustomClaims_ForPositiveBlockedUser_ShouldContainResultClaimsBlockedClaimsAndNotCanUploadClaims()
        {
            var testdata = DateTime.Today.AddDays(-3);

            var positiveTestResult = new PositiveTestResult
            {
                PositiveTestDate = testdata.Some()
            };

            var verificationLimitMock = new Mock <IVerificationLimit>();

            verificationLimitMock
            .Setup(x => x.HasReachedLimit(It.IsAny <IEnumerable <VerificationRecord> >()))
            .Returns(true);

            verificationLimitMock
            .Setup(x => x.Config)
            .Returns(new VerificationLimitConfig
            {
                MaxLimitDuration        = TimeSpan.FromDays(2),
                MaxVerificationsAllowed = 42
            });

            var target = new VerificationResult(positiveTestResult, new VerificationRecord[0], verificationLimitMock.Object);

            var verificationClaims = target.GetVerificationClaims().ToList();

            verificationClaims.Should().Contain(c => c.Type == DkSmittestopClaims.Covid19Status && c.Value == DkSmittestopClaims.StatusValues.Positive);
            verificationClaims.Should().Contain(c => c.Type == VerificationClaims.VerifiedPositiveTestDate && c.Value == testdata.ToString("yyyy-MM-dd"));
            verificationClaims.Should().Contain(c => c.Type == DkSmittestopClaims.Covid19Blocked && c.Value == "true");
            verificationClaims.Should().Contain(c => c.Type == DkSmittestopClaims.Covid19LimitCount);
            verificationClaims.Should().Contain(c => c.Type == DkSmittestopClaims.Covid19LimitDuration);
            verificationClaims.Should().NotContain(c => c.Type == JwtClaimTypes.Role);
        }
Exemplo n.º 2
0
        public void GetVerificationClaims_ForNegativeResult_ShouldContainNegativeClaim()
        {
            var target = new VerificationResult();

            var verificationClaims = target.GetVerificationClaims().ToList();

            verificationClaims.Should().Contain(c => c.Type == DkSmittestopClaims.Covid19Status && c.Value == DkSmittestopClaims.StatusValues.Negative);
        }
Exemplo n.º 3
0
        public void GetVerificationClaims_ForNegativeResult_ShouldContainUploadClaim()
        {
            var target = new VerificationResult(new List <VerificationRecord>(), Mock.Of <IVerificationLimit>(), false);

            var verificationClaims = target.GetVerificationClaims().ToList();

            verificationClaims.Should().Contain(c => c.Type == DkSmittestopClaims.Covid19Status && c.Value == DkSmittestopClaims.StatusValues.Negative);
            verificationClaims.Should().Contain(c => c.Type == JwtClaimTypes.Role && c.Value == VerificationRoles.UploadApproved);
        }
Exemplo n.º 4
0
        public void GetCustomClaims_ForNonPositiveUser_ShouldContainVerifiedPostiveRoleAndTestDateClaim()
        {
            var testdata = DateTime.Today.AddDays(-3);

            var target = new VerificationResult(new PositiveTestResult
            {
                PositiveTestDate = testdata.Some()
            }, new VerificationRecord[0], new Mock <IVerificationLimit>().Object);

            var verificationClaims = target.GetVerificationClaims().ToList();

            verificationClaims.Should().Contain(c => c.Type == JwtClaimTypes.Role && c.Value == VerificationRoles.VerifiedPositive);
            verificationClaims.Should().Contain(c => c.Type == VerificationClaims.VerifiedPositiveTestDate && c.Value == testdata.ToString("yyyy-MM-dd"));
        }
Exemplo n.º 5
0
        public void GetCustomClaims_ForPositiveNonBlockedUser_ShouldContainCanUploadClaimsButNotBlockedConfigClaims()
        {
            var testdata = DateTime.Today.AddDays(-3);

            var verificationLimitMock = new Mock <IVerificationLimit>();

            verificationLimitMock
            .Setup(x => x.HasReachedLimit(It.IsAny <IEnumerable <VerificationRecord> >()))
            .Returns(false);

            var target = new VerificationResult(new PositiveTestResult
            {
                PositiveTestDate = testdata.Some()
            }, new VerificationRecord[0], verificationLimitMock.Object);

            var verificationClaims = target.GetVerificationClaims().ToList();

            verificationClaims.Should().Contain(c => c.Type == DkSmittestopClaims.Covid19Status && c.Value == DkSmittestopClaims.StatusValues.Positive);
            verificationClaims.Should().Contain(c => c.Type == JwtClaimTypes.Role && c.Value == VerificationRoles.UploadApproved);
            verificationClaims.Should().Contain(c => c.Type == VerificationClaims.VerifiedPositiveTestDate && c.Value == testdata.ToString("yyyy-MM-dd"));
            verificationClaims.Should().Contain(c => c.Type == DkSmittestopClaims.Covid19Blocked && c.Value == "false");
            verificationClaims.Should().NotContain(c => c.Type == DkSmittestopClaims.Covid19LimitCount);
            verificationClaims.Should().NotContain(c => c.Type == DkSmittestopClaims.Covid19LimitDuration);
        }