Exemple #1
0
        public bool Validate(LabVerifyArgs args)
        {
            if (args == null)
            {
                return(false);
            }

            return(_PollTokenService.ValidateToken(args.PollToken));
        }
        public async Task <IActionResult> PostKeysAreUploaded([FromBody] LabVerifyArgs args, [FromServices] HttpPostLabVerifyCommand command)
        {
            if (command == null)
            {
                throw new ArgumentNullException(nameof(command));
            }

            _Logger.LogInformation("POST labverify triggered.");
            return(await command.Execute(args));
        }
        public void Validate_checks_null()
        {
            // Assemble
            var args = new LabVerifyArgs();
            // Act
            var result = _Validator.Validate(args);

            // Assert
            Assert.IsFalse(result);
        }
        public void Validate_checks_pollToken_format_2()
        {
            // Assemble
            var args = new LabVerifyArgs {
                PollToken = "test_not_base64.part2.part3"
            };
            // Act
            var result = _Validator.Validate(args);

            // Assert
            Assert.IsFalse(result);
        }
        public void Validate_checks_pollToken_valid()
        {
            // Assemble
            var token = _PollTokenService.Next();
            var args  = new LabVerifyArgs {
                PollToken = token
            };
            // Act
            var result = _Validator.Validate(args);

            // Assert
            Assert.IsTrue(result);
        }
        public bool Validate(LabVerifyArgs args)
        {
            if (args == null)
            {
                return(false);
            }

            if (string.IsNullOrWhiteSpace(args.PollToken))
            {
                return(false);
            }

            return(_PollTokenService.Validate(args.PollToken));
        }
        public void Validate_checks_pollToken_signature()
        {
            // Assemble
            var token = _PollTokenService.Next();

            token = token.Substring(0, token.Length - 2); // modifies end of token which is signature

            var args = new LabVerifyArgs {
                PollToken = token
            };

            // Act
            var result = _Validator.Validate(args);

            // Assert
            Assert.IsFalse(result);
        }
        public void Validate_checks_pollToken_expires()
        {
            // Assemble
            var token = _PollTokenService.Next();
            var args  = new LabVerifyArgs()
            {
                PollToken = token
            };

            Assert.Fail("Finish this test.");
            // Act
            // var mock = new Mock<IDateTime>();
            // mock.Setup(fake => fake.Now)
            // .Returns(new DateTime(2000, 1, 1));
            var result = _Validator.Validate(args);

            // Assert
            Assert.IsTrue(result);
        }
        public async Task WorkflowMiss()
        {
            // Arrange
            _FakeTimeProvider.Value = new DateTime(2020, 8, 2, 0, 0, 0, DateTimeKind.Utc);
            var pollToken = _PollTokenService.Next();

            await WriteBucket(pollToken);

            // Act
            var args = new LabVerifyArgs {
                PollToken = "Missed!"
            };

            _DbContext.BeginTransaction();
            var result = _Command.Execute(args);

            // Assert
            var response = ((LabVerifyAuthorisationResponse)((OkObjectResult)result.Result).Value);

            Assert.AreEqual("Workflow not found.", response.Error);
            Assert.AreEqual(false, response.Valid);
        }
        public async Task TeksPosted()
        {
            // Arrange
            _FakeTimeProvider.Value = new DateTime(2020, 8, 2, 0, 0, 0, DateTimeKind.Utc); //Touch
            var pollToken = _PollTokenService.Next();

            await WriteBucket(pollToken);

            PostTeks();

            // Act
            var args = new LabVerifyArgs {
                PollToken = pollToken
            };

            _DbContext.BeginTransaction();
            var result = _Command.Execute(args);

            // Assert
            var response = (LabVerifyAuthorisationResponse)((OkObjectResult)result.Result).Value;

            Assert.AreEqual(true, response.Valid);
        }
        public async Task NoTekPost()
        {
            // Arrange
            _FakeTimeProvider.Value = new DateTime(2020, 8, 2, 0, 0, 0, DateTimeKind.Utc);
            var bucket    = new byte[32];
            var pollToken = _PollTokenService.Next();

            await WriteBucket(pollToken);

            // Act
            var args = new LabVerifyArgs {
                PollToken = pollToken
            };

            _DbContext.BeginTransaction();
            var result = _Command.Execute(args);

            // Assert
            Assert.AreEqual(false, ((LabVerifyAuthorisationResponse)((OkObjectResult)result.Result).Value).Valid);
            var wf = _DbContext.KeyReleaseWorkflowStates.Single(x => x.BucketId == bucket);

            Assert.AreEqual(0, wf.Teks.Count);
            Assert.AreEqual(false, wf.TeksTouched);
        }
 public async Task <IActionResult> PostKeysAreUploaded([FromBody] LabVerifyArgs args, [FromServices] HttpPostLabVerify command)
 {
     return(await command.Execute(args));
 }