public void Query_Ctor_SetsEmailAddressProperty_UsingStringArg() { var emailAddress = FakeData.Email(); var query = new HashedEmailValueBy(emailAddress); query.EmailAddress.ShouldEqual(emailAddress); }
public void Query_Ctor_SetsEmailAddressProperty_UsingStringArg() { var emailAddress = string.Format("{0}@domain.tld", Guid.NewGuid()); var query = new HashedEmailValueBy(emailAddress); query.EmailAddress.ShouldEqual(emailAddress); }
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); }
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)); }