-
Notifications
You must be signed in to change notification settings - Fork 9
/
attribute_test.clj
70 lines (54 loc) · 2.08 KB
/
attribute_test.clj
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
(ns hara.io.file.attribute-test
(:use hara.test)
(:require [hara.io.file.attribute :refer :all]))
^{:refer hara.io.file.attribute/owner :added "3.0"}
(fact "returns the owner of the file"
(owner "project.clj")
=> string?)
^{:refer hara.io.file.attribute/lookup-owner :added "3.0"}
(fact "lookup the user registry for the name"
(lookup-owner "WRONG")
=> (throws))
^{:refer hara.io.file.attribute/set-owner :added "3.0"}
(fact "sets the owner of a particular file"
(set-owner "test" "WRONG")
=> (throws))
^{:refer hara.io.file.attribute/lookup-group :added "3.0"}
(fact "lookup the user registry for the name"
(lookup-group "WRONG")
=> (throws))
^{:refer hara.io.file.attribute/attr :added "3.0"}
(fact "creates an attribute for input to various functions")
^{:refer hara.io.file.attribute/attr-value :added "3.0"}
(fact "adjusts the attribute value for input")
^{:refer hara.io.file.attribute/map->attr-array :added "3.0"}
(fact "converts a clojure map to an array of attrs")
^{:refer hara.io.file.attribute/attrs->map :added "3.0"}
(fact "converts the map of attributes into a clojure map")
^{:refer hara.io.file.attribute/attributes :added "3.0"}
(fact "shows all attributes for a given path"
(attributes "project.clj")
;; {:owner "chris",
;; :group "staff",
;; :permissions "rw-r--r--",
;; :file-key "(dev=1000004,ino=2351455)",
;; :ino 2351455,
;; :is-regular-file true.
;; :is-directory false, :uid 501,
;; :is-other false, :mode 33188, :size 4342,
;; :gid 20, :ctime 1476755481000,
;; :nlink 1,
;; :last-access-time 1476755481000,
;; :is-symbolic-link false,
;; :last-modified-time 1476755481000,
;; :creation-time 1472282953000,
;; :dev 16777220, :rdev 0}
=> map)
^{:refer hara.io.file.attribute/set-attributes :added "3.0"}
(comment "sets all attributes for a given path"
(set-attributes "project.clj"
{:owner "chris",
:group "staff",
:permissions "rw-rw-rw-"})
;;=> #path:"/Users/chris/Development/chit/lucidity/project.clj"
)