Class: TestShellExpressionEvaluator
- Defined in:
- lib/evaluate_shell_expressions.rb
Instance Method Summary collapse
- #setup ⇒ Object
- #test_empty_expressions_list ⇒ Object
- #test_initial_code_execution ⇒ Object
- #test_invalid_expression ⇒ Object
- #test_large_number_of_expressions ⇒ Object
- #test_multiple_expressions ⇒ Object
- #test_single_expression ⇒ Object
Instance Method Details
#setup ⇒ Object
63 64 65 66 67 68 |
# File 'lib/evaluate_shell_expressions.rb', line 63 def setup @initial_code = <<~BASH #!/bin/sh echo "Initial setup..." BASH end |
#test_empty_expressions_list ⇒ Object
102 103 104 105 106 107 108 109 110 111 |
# File 'lib/evaluate_shell_expressions.rb', line 102 def test_empty_expressions_list expressions = {} occurrence_expressions = {} result = evaluate_shell_expressions( @initial_code, expressions, occurrence_expressions: occurrence_expressions ) assert_nil result end |
#test_initial_code_execution ⇒ Object
124 125 126 127 128 129 130 131 132 133 134 135 136 137 |
# File 'lib/evaluate_shell_expressions.rb', line 124 def test_initial_code_execution initial_code = <<~BASH #!/bin/sh echo "Custom setup message" BASH expressions = { 'test' => 'echo Test after initial setup' } occurrence_expressions = { 'test' => '%<test>' } result = evaluate_shell_expressions( @initial_code, expressions, occurrence_expressions: occurrence_expressions ) assert_equal 'Test after initial setup', result['%<test>'] end |
#test_invalid_expression ⇒ Object
113 114 115 116 117 118 119 120 121 122 |
# File 'lib/evaluate_shell_expressions.rb', line 113 def test_invalid_expression expressions = { 'invalid' => 'invalid_command' } occurrence_expressions = {} result = evaluate_shell_expressions( @initial_code, expressions, occurrence_expressions: occurrence_expressions ) assert_equal EvaluateShellExpression::StatusFail, result end |
#test_large_number_of_expressions ⇒ Object
139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 |
# File 'lib/evaluate_shell_expressions.rb', line 139 def test_large_number_of_expressions expressions = (1..100).to_h do |i| ["expr_#{i}", "echo Expression #{i}"] end occurrence_expressions = (1..100).to_h do |i| ["expr_#{i}", "%<expr_#{i}>"] end result = evaluate_shell_expressions( @initial_code, expressions, occurrence_expressions: occurrence_expressions ) expressions.each_with_index do |(key, _expression), index| assert_equal "Expression #{index + 1}", result["%<#{key}>"] end end |
#test_multiple_expressions ⇒ Object
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/evaluate_shell_expressions.rb', line 81 def test_multiple_expressions expressions = { 'greeting' => "echo 'Hello, World!'", 'date' => 'date +%Y-%m-%d', 'kernel' => 'uname -r' } occurrence_expressions = { 'date' => '%<date>', 'greeting' => '%<greeting>', 'kernel' => '%<kernel>' } result = evaluate_shell_expressions( @initial_code, expressions, occurrence_expressions: occurrence_expressions ) assert_equal 'Hello, World!', result['%<greeting>'] assert_match(/\d{4}-\d{2}-\d{2}/, result['%<date>']) assert_match(/\d+\.\d+\.\d+/, result['%<kernel>']) end |
#test_single_expression ⇒ Object
70 71 72 73 74 75 76 77 78 79 |
# File 'lib/evaluate_shell_expressions.rb', line 70 def test_single_expression expressions = { 'greeting' => "echo 'Hello, World!'" } occurrence_expressions = { 'greeting' => '%<greeting>' } result = evaluate_shell_expressions( @initial_code, expressions, occurrence_expressions: occurrence_expressions ) assert_equal 'Hello, World!', result['%<greeting>'] end |