f757e35b |
#include "validator.h"
|
3c673060 |
#include "user.h"
|
f757e35b |
#include "test_util.h"
|
9af49688 |
#include "token.h"
|
f757e35b |
|
3c673060 |
class fake_directory : public directory {
private:
std::string user_name_;
public:
fake_directory(const std::string &user_name) : user_name_(user_name) {}
fake_directory() : user_name_("_NOT_A_USER") {}
virtual const user_p find_user(const std::string &user_name) {
user_p result;
if (user_name == user_name_) {
result.reset(new user);
}
return result;
}
};
|
9af49688 |
class fake_user_token_supplier : public user_token_supplier {
private:
std::string token_;
public:
fake_user_token_supplier(const std::string &token) : token_(token) {}
fake_user_token_supplier() : token_("_NOT_A_TOKEN") {}
virtual std::string token(const user_p user) {
return token_;
}
};
|
3c673060 |
|
f757e35b |
bool validator_validates() {
|
9af49688 |
// given
std::string token = "token";
user_token_supplier_p user_token_supplier(new fake_user_token_supplier(token));
|
3c673060 |
std::string user_name = "msmith";
directory_p directory(new fake_directory(user_name));
|
caf7db60 |
old_validator validator(directory, user_token_supplier);
|
f757e35b |
|
3c673060 |
// when
bool actual = validator.validate(user_name, "token");
|
f757e35b |
|
3c673060 |
// then
check(actual, "should be valid");
succeed();
|
92b68213 |
}
bool validator_fails_unknown_user() {
// given
|
9af49688 |
std::string token = "token";
user_token_supplier_p user_token_supplier(new fake_user_token_supplier(token));
|
3c673060 |
directory_p directory(new fake_directory);
|
caf7db60 |
old_validator validator(directory, user_token_supplier);
|
92b68213 |
// when
|
9af49688 |
bool actual = validator.validate("notuser", token);
|
92b68213 |
// then
check(!actual, "should not be valid");
succeed();
}
bool validator_fails_incorrect_token() {
// given
|
9af49688 |
user_token_supplier_p user_token_supplier(new fake_user_token_supplier);
std::string user_name = "msmith";
|
3c673060 |
directory_p directory(new fake_directory(user_name));
|
caf7db60 |
old_validator validator(directory, user_token_supplier);
|
92b68213 |
// when
|
9af49688 |
bool actual = validator.validate(user_name, "token");
|
92b68213 |
// then
check(!actual, "should not be valid");
|
f757e35b |
succeed();
}
RESET_VARS_START
RESET_VARS_END
bool run_tests() {
test(validator_validates);
|
92b68213 |
test(validator_fails_unknown_user);
test(validator_fails_incorrect_token);
|
f757e35b |
succeed();
}
int main(int argc, char *argv[]) {
return !run_tests();
}
|