public void Should_provide_shared_secret_based_identification()
        {
            const string name    = "Facebook access to API";
            var          purpose = new[] { "api" };

            var identity = _identityDirectory.CreateIdentity();
            var secret   = _identityStore.AddSharedSecret(identity, name, purpose);

            var result = _identityStore.AuthenticateWithSharedSecret(secret);

            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.AuthenticateWithSharedSecret(Guid.NewGuid().ToString());
            Assert.AreEqual(AuthenticationStatus.NotFound, result.Status);

            _identityStore.DeleteSharedSecret(secret);
            result = _identityStore.AuthenticateWithSharedSecret(secret);
            Assert.AreEqual(AuthenticationStatus.NotFound, result.Status);
        }