1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
|
{% skip_file if flag?(:win32) %}
require "spec"
require "system/user"
USER_NAME = {{ `id -un`.stringify.chomp }}
USER_ID = {{ `id -u`.stringify.chomp }}
describe System::User do
describe ".find_by(*, name)" do
it "returns a user by name" do
user = System::User.find_by(name: USER_NAME)
user.should be_a(System::User)
user.username.should eq(USER_NAME)
user.id.should eq(USER_ID)
end
it "raises on a nonexistent user" do
expect_raises System::User::NotFoundError, "No such user" do
System::User.find_by(name: "this_user_does_not_exist")
end
end
end
describe ".find_by(*, id)" do
it "returns a user by id" do
user = System::User.find_by(id: USER_ID)
user.should be_a(System::User)
user.id.should eq(USER_ID)
user.username.should eq(USER_NAME)
end
it "raises on nonexistent user id" do
expect_raises System::User::NotFoundError, "No such user" do
System::User.find_by(id: "1234567")
end
end
end
describe ".find_by?(*, name)" do
it "returns a user by name" do
user = System::User.find_by?(name: USER_NAME).not_nil!
user.should be_a(System::User)
user.username.should eq(USER_NAME)
user.id.should eq(USER_ID)
end
it "returns nil on nonexistent user" do
user = System::User.find_by?(name: "this_user_does_not_exist")
user.should eq(nil)
end
end
describe ".find_by?(*, id)" do
it "returns a user by id" do
user = System::User.find_by?(id: USER_ID).not_nil!
user.should be_a(System::User)
user.id.should eq(USER_ID)
user.username.should eq(USER_NAME)
end
it "returns nil on nonexistent user id" do
user = System::User.find_by?(id: "1234567")
user.should eq(nil)
end
end
describe "#username" do
it "is the same as the source name" do
System::User.find_by(name: USER_NAME).username.should eq(USER_NAME)
end
end
describe "#id" do
it "is the same as the source ID" do
System::User.find_by(id: USER_ID).id.should eq(USER_ID)
end
end
describe "#group_id" do
it "calls without raising" do
System::User.find_by(name: USER_NAME).group_id
end
end
describe "#name" do
it "calls without raising" do
System::User.find_by(name: USER_NAME).name
end
end
describe "#home_directory" do
it "calls without raising" do
System::User.find_by(name: USER_NAME).home_directory
end
end
describe "#shell" do
it "calls without raising" do
System::User.find_by(name: USER_NAME).shell
end
end
describe "#to_s" do
it "returns a string representation" do
System::User.find_by(name: USER_NAME).to_s.should eq("#{USER_NAME} (#{USER_ID})")
end
end
end
|