public async Task NullUser_Throws()
                {
                    var validator = new UserPasswordHashRequiredValidator <User>();

                    await Assert.ThrowsAsync <ArgumentNullException>("user", async() =>
                    {
                        await validator.Validate(user: null !);
                    });
                public async Task ValidUser_Succeeds()
                {
                    var validator = new UserPasswordHashRequiredValidator <User>();
                    var user      = new User()
                    {
                        PasswordHash = "hash"
                    };

                    await validator.Validate(user);
                }
                public async Task EmptyPasswordHash_Throws()
                {
                    var validator = new UserPasswordHashRequiredValidator <User>();
                    var user      = new User()
                    {
                        PasswordHash = string.Empty,
                    };

                    await Assert.ThrowsAsync <ArgumentException>("user", async() =>
                    {
                        await validator.Validate(user);
                    });
                }