blob: 71046f8a9f98e67713797b86442fef225391925f (
plain)
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
|
require 'minitest/autorun'
require 'fileutils'
require_relative '../../../lib/dsl'
class RCMDirectoryTest < Minitest::Test
DIR_PATH = './.directory_test.rcmtmp'.freeze
# Minitest.after_run do
# FileUtils.rm_r(DIR_PATH) if File.directory?(DIR_PATH)
# end
def test_create_directory
configure_from_scratch do
directory DIR_PATH do
is present
end
end
assert File.directory?(DIR_PATH)
end
def test_delete_directory
configure_from_scratch do
directory create do
path DIR_PATH
is present
end
directory delete do
path DIR_PATH
is absent
end
end
refute File.directory?(DIR_PATH)
end
def test_purge_directory
configure_from_scratch do
touch create do
path "#{DIR_PATH}/subdir/a_file.txt"
manage directory
end
directory purge do
path DIR_PATH
is purged
without backup
end
end
refute File.directory?(DIR_PATH)
end
# TODO: Unit test
def test_copy_directory_recursively
expected_files = {}
configure_from_scratch do
2.times do |i|
file "file_#{i + 10}_dest" do
path "#{DIR_PATH}/dest_dir/file_#{i + 10}.txt"
manage directory
expected_files["file_#{i + 10}.txt"] = "file_#{i + 10}_dest"
"file_#{i + 10}_dest"
end
file "file_#{i}_dest" do
path "#{DIR_PATH}/dest_dir/file_#{i}.txt"
manage directory
expected_files["file_#{i}.txt"] = "file_#{i}_dest"
"file_#{i}_dest"
end
file "file_#{i}_sub_dest" do
path "#{DIR_PATH}/dest_dir/sub/file_#{i}.txt"
expected_files["sub/file_#{i}.txt"] = "sub_file_#{i}_dest"
manage directory
"sub_file_#{i}_dest"
end
end
4.times do |i|
file "file_#{i}_source" do
path "#{DIR_PATH}/source_dir/file_#{i}.txt"
manage directory
expected_files["file_#{i}.txt"] = "file_#{i}_source"
"file_#{i}_source"
end
file "file_#{i}_sub_source" do
path "#{DIR_PATH}/source_dir/sub/file_#{i}.txt"
manage directory
expected_files["sub/file_#{i}.txt"] = "sub_file_#{i}_source"
"sub_file_#{i}_source"
end
end
directory "#{DIR_PATH}/dest_dir" do
recursively
without backup
"#{DIR_PATH}/source_dir"
end
end
expected_files.each do |file_path, content|
assert File.file?("#{DIR_PATH}/dest_dir/#{file_path}")
assert_equal content, File.read("#{DIR_PATH}/dest_dir/#{file_path}")
end
actual_files = (Dir["#{DIR_PATH}/dest_dir/*"] + Dir["#{DIR_PATH}/dest_dir/*/*"]).select { File.file?(_1) }
actual_files.each do |file_path|
key = file_path.sub("#{DIR_PATH}/dest_dir/", '')
assert expected_files.key?(key)
assert_equal File.read(file_path), expected_files[key]
end
end
end
|