public void Should_provide_certificate_based_identitfication()
        {
            var lifetime = TimeSpan.FromMilliseconds(100);
            var purpose  = new[] { "api" };

            var identity = _identityDirectory.CreateIdentity();
            var cert     = _identityStore.AddCertificate(identity, lifetime, purpose);

            var result = _identityStore.AuthenticateWithCertificate(cert);

            Assert.IsNotNull(result);
            Assert.AreEqual(identity, result.Identity);
            Assert.AreEqual(purpose.Length, result.Purposes.Count);
            Assert.AreEqual(purpose[0], result.Purposes[0]);
            Assert.AreEqual(AuthenticationStatus.Authenticated, result.Status);

            result = _identityStore.AuthenticateWithCertificate(Guid.NewGuid().ToByteArray());
            Assert.AreNotEqual(AuthenticationStatus.Authenticated, result.Status);

            Thread.Sleep(500);

            result = _identityStore.AuthenticateWithCertificate(cert);
            Assert.AreNotEqual(AuthenticationStatus.Authenticated, result.Status);
        }