Beispiel #1
0
        public void Query_Ctor_SetsEmailAddressProperty_UsingStringArg()
        {
            var emailAddress = FakeData.Email();
            var query        = new HashedEmailValueBy(emailAddress);

            query.EmailAddress.ShouldEqual(emailAddress);
        }
Beispiel #2
0
        public void Query_Ctor_SetsEmailAddressProperty_UsingStringArg()
        {
            var emailAddress = string.Format("{0}@domain.tld", Guid.NewGuid());
            var query        = new HashedEmailValueBy(emailAddress);

            query.EmailAddress.ShouldEqual(emailAddress);
        }
Beispiel #3
0
        public void Handler_HashesEmail_GravatarStyle(string emailAddress, string expectedHash)
        {
            var handler = new HandleHashedEmailValueByQuery();
            var query   = new HashedEmailValueBy(emailAddress);

            string result = handler.Handle(query).Result;

            result.ShouldEqual(expectedHash);
        }
Beispiel #4
0
        public Task <string> Handle(HashedEmailValueBy query)
        {
            // https://en.gravatar.com/site/implement/hash/
            var emailAddress = query.EmailAddress != null?query.EmailAddress.Trim().ToLower() : "";

            var md5        = MD5.Create();
            var inputBytes = Encoding.ASCII.GetBytes(emailAddress);
            var hash       = md5.ComputeHash(inputBytes);
            var sb         = new StringBuilder();

            foreach (var t in hash)
            {
                sb.Append(t.ToString("x2"));
            }
            var gravatar = sb.ToString();

            return(Task.FromResult(gravatar));
        }