hammer_cli 0.18.1 → 0.19.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/doc/creating_commands.md +2 -8
- data/doc/developer_docs.md +2 -0
- data/doc/help_modification.md +35 -4
- data/doc/output.md +43 -0
- data/doc/release_notes.md +6 -2
- data/doc/review_checklist.md +17 -0
- data/lib/hammer_cli/help/definition.rb +1 -0
- data/lib/hammer_cli/help/definition/abstract_item.rb +2 -1
- data/lib/hammer_cli/help/definition/list.rb +5 -2
- data/lib/hammer_cli/help/definition/note.rb +30 -0
- data/lib/hammer_cli/help/definition/section.rb +0 -1
- data/lib/hammer_cli/help/definition/text.rb +3 -1
- data/lib/hammer_cli/help/text_builder.rb +7 -2
- data/lib/hammer_cli/main.rb +2 -2
- data/lib/hammer_cli/output/adapter/abstract.rb +9 -3
- data/lib/hammer_cli/output/adapter/base.rb +4 -2
- data/lib/hammer_cli/output/adapter/csv.rb +4 -2
- data/lib/hammer_cli/output/adapter/table.rb +4 -2
- data/lib/hammer_cli/output/adapter/tree_structure.rb +4 -4
- data/lib/hammer_cli/output/fields.rb +3 -0
- data/lib/hammer_cli/output/formatters.rb +77 -27
- data/lib/hammer_cli/output/utils.rb +12 -1
- data/lib/hammer_cli/version.rb +1 -1
- data/locale/ca/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/de/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/en/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/en_GB/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/es/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/fr/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/it/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/ja/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/ko/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/pt_BR/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/ru/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/zh_CN/LC_MESSAGES/hammer-cli.mo +0 -0
- data/locale/zh_TW/LC_MESSAGES/hammer-cli.mo +0 -0
- data/man/hammer.1.gz +0 -0
- data/test/reports/TEST-Fields-ContainerField-display-.xml +7 -0
- data/test/reports/TEST-Fields-ContainerField-display-blank-is-allowed.xml +15 -0
- data/test/reports/TEST-Fields-ContainerField-display-blank-is-not-allowed.xml +15 -0
- data/test/reports/TEST-Fields-ContainerField.xml +7 -0
- data/test/reports/TEST-Fields-Field-display-.xml +7 -0
- data/test/reports/TEST-Fields-Field-display-blank-is-allowed.xml +11 -0
- data/test/reports/TEST-Fields-Field-display-blank-is-not-allowed.xml +11 -0
- data/test/reports/TEST-Fields-Field-hide-blank-.xml +11 -0
- data/test/reports/TEST-Fields-Field-parameters.xml +9 -0
- data/test/reports/TEST-Fields-Field.xml +13 -0
- data/test/reports/TEST-HammerCLI-AbstractCommand-build-options.xml +15 -0
- data/test/reports/TEST-HammerCLI-AbstractCommand-exception-handler.xml +13 -0
- data/test/reports/TEST-HammerCLI-AbstractCommand-logging.xml +21 -0
- data/test/reports/TEST-HammerCLI-AbstractCommand-option-builder.xml +11 -0
- data/test/reports/TEST-HammerCLI-AbstractCommand-options.xml +11 -0
- data/test/reports/TEST-HammerCLI-AbstractCommand-output.xml +19 -0
- data/test/reports/TEST-HammerCLI-AbstractCommand-subcommand-behavior-remove-subcommand.xml +11 -0
- data/test/reports/TEST-HammerCLI-AbstractCommand-subcommand-behavior-subcommand-.xml +13 -0
- data/test/reports/TEST-HammerCLI-AbstractCommand-subcommand-behavior-subcommand.xml +11 -0
- data/test/reports/TEST-HammerCLI-AbstractCommand-subcommand-behavior.xml +7 -0
- data/test/reports/TEST-HammerCLI-AbstractCommand.xml +11 -0
- data/test/reports/TEST-HammerCLI-Apipie-Command-options.xml +11 -0
- data/test/reports/TEST-HammerCLI-Apipie-Command-resource-defined.xml +9 -0
- data/test/reports/TEST-HammerCLI-Apipie-Command-setting-resources.xml +19 -0
- data/test/reports/TEST-HammerCLI-Apipie-Command.xml +9 -0
- data/test/reports/TEST-HammerCLI-Apipie-OptionBuilder-aliasing-resources.xml +13 -0
- data/test/reports/TEST-HammerCLI-Apipie-OptionBuilder-filtering-options.xml +15 -0
- data/test/reports/TEST-HammerCLI-Apipie-OptionBuilder-required-options.xml +11 -0
- data/test/reports/TEST-HammerCLI-Apipie-OptionBuilder-setting-correct-normalizers.xml +9 -0
- data/test/reports/TEST-HammerCLI-Apipie-OptionBuilder-with-hash-params.xml +11 -0
- data/test/reports/TEST-HammerCLI-Apipie-OptionBuilder-with-one-simple-param.xml +15 -0
- data/test/reports/TEST-HammerCLI-Apipie-OptionBuilder.xml +7 -0
- data/test/reports/TEST-HammerCLI-Completer-command-completion.xml +29 -0
- data/test/reports/TEST-HammerCLI-Completer-option-value-completion.xml +17 -0
- data/test/reports/TEST-HammerCLI-Completer-subcommand-completion.xml +19 -0
- data/test/reports/TEST-HammerCLI-Completer.xml +7 -0
- data/test/reports/TEST-HammerCLI-CompleterLine-line-complete.xml +25 -0
- data/test/reports/TEST-HammerCLI-CompleterLine-splitting-words.xml +29 -0
- data/test/reports/TEST-HammerCLI-CompleterLine.xml +7 -0
- data/test/reports/TEST-HammerCLI-CompleterWord-complete-.xml +23 -0
- data/test/reports/TEST-HammerCLI-CompleterWord-quote.xml +15 -0
- data/test/reports/TEST-HammerCLI-CompleterWord-quoted-.xml +13 -0
- data/test/reports/TEST-HammerCLI-CompleterWord.xml +7 -0
- data/test/reports/TEST-HammerCLI-Connection.xml +21 -0
- data/test/reports/TEST-HammerCLI-ExceptionHandler.xml +21 -0
- data/test/reports/TEST-HammerCLI-I18n.xml +11 -0
- data/test/reports/TEST-HammerCLI-MainCommand-loading-context-password.xml +11 -0
- data/test/reports/TEST-HammerCLI-MainCommand-loading-context-username.xml +11 -0
- data/test/reports/TEST-HammerCLI-MainCommand-loading-context-verbose.xml +9 -0
- data/test/reports/TEST-HammerCLI-MainCommand-loading-context.xml +7 -0
- data/test/reports/TEST-HammerCLI-MainCommand.xml +7 -0
- data/test/reports/TEST-HammerCLI-Modules-find-by-name.xml +13 -0
- data/test/reports/TEST-HammerCLI-Modules-load-a-module-module-not-found.xml +13 -0
- data/test/reports/TEST-HammerCLI-Modules-load-a-module-module-runtime-exception.xml +13 -0
- data/test/reports/TEST-HammerCLI-Modules-load-a-module-success.xml +15 -0
- data/test/reports/TEST-HammerCLI-Modules-load-a-module.xml +7 -0
- data/test/reports/TEST-HammerCLI-Modules-load-all-modules.xml +9 -0
- data/test/reports/TEST-HammerCLI-Modules-names.xml +13 -0
- data/test/reports/TEST-HammerCLI-Modules.xml +7 -0
- data/test/reports/TEST-HammerCLI-OptionBuilderContainer.0.xml +7 -0
- data/test/reports/TEST-HammerCLI-OptionBuilderContainer.xml +11 -0
- data/test/reports/TEST-HammerCLI-Options-Normalizers-abstract.xml +9 -0
- data/test/reports/TEST-HammerCLI-Options-Normalizers-bool.xml +31 -0
- data/test/reports/TEST-HammerCLI-Options-Normalizers-datetime.xml +17 -0
- data/test/reports/TEST-HammerCLI-Options-Normalizers-enum.xml +15 -0
- data/test/reports/TEST-HammerCLI-Options-Normalizers-enumlist.xml +21 -0
- data/test/reports/TEST-HammerCLI-Options-Normalizers-json-input.xml +15 -0
- data/test/reports/TEST-HammerCLI-Options-Normalizers-key-value-list.xml +17 -0
- data/test/reports/TEST-HammerCLI-Options-Normalizers-list.xml +15 -0
- data/test/reports/TEST-HammerCLI-Options-Normalizers.xml +7 -0
- data/test/reports/TEST-HammerCLI-Options-OptionDefinition-context.xml +9 -0
- data/test/reports/TEST-HammerCLI-Options-OptionDefinition-formatters.xml +11 -0
- data/test/reports/TEST-HammerCLI-Options-OptionDefinition.xml +7 -0
- data/test/reports/TEST-HammerCLI-Output-Adapter-Abstract-error-messages.xml +15 -0
- data/test/reports/TEST-HammerCLI-Output-Adapter-Abstract-messages.xml +11 -0
- data/test/reports/TEST-HammerCLI-Output-Adapter-Abstract-test-data-for-field.xml +15 -0
- data/test/reports/TEST-HammerCLI-Output-Adapter-Abstract.xml +17 -0
- data/test/reports/TEST-HammerCLI-Output-Adapter-Base-print-collection-show-ids.xml +9 -0
- data/test/reports/TEST-HammerCLI-Output-Adapter-Base-print-collection.xml +27 -0
- data/test/reports/TEST-HammerCLI-Output-Adapter-Base.xml +7 -0
- data/test/reports/TEST-HammerCLI-Output-Adapter-CSValues-print-collection-formatters.xml +11 -0
- data/test/reports/TEST-HammerCLI-Output-Adapter-CSValues-print-collection-handle-fields-with-collections.xml +13 -0
- data/test/reports/TEST-HammerCLI-Output-Adapter-CSValues-print-collection-handle-fields-with-containers.xml +11 -0
- data/test/reports/TEST-HammerCLI-Output-Adapter-CSValues-print-collection-handle-ids.xml +11 -0
- data/test/reports/TEST-HammerCLI-Output-Adapter-CSValues-print-collection.xml +11 -0
- data/test/reports/TEST-HammerCLI-Output-Adapter-CSValues-print-message.xml +11 -0
- data/test/reports/TEST-HammerCLI-Output-Adapter-CSValues.xml +7 -0
- data/test/reports/TEST-HammerCLI-Output-Adapter-Table-print-collection-column-width.xml +15 -0
- data/test/reports/TEST-HammerCLI-Output-Adapter-Table-print-collection-formatters.xml +11 -0
- data/test/reports/TEST-HammerCLI-Output-Adapter-Table-print-collection-handle-ids.xml +11 -0
- data/test/reports/TEST-HammerCLI-Output-Adapter-Table-print-collection-sort-columns.xml +9 -0
- data/test/reports/TEST-HammerCLI-Output-Adapter-Table-print-collection.xml +11 -0
- data/test/reports/TEST-HammerCLI-Output-Adapter-Table.xml +7 -0
- data/test/reports/TEST-HammerCLI-Output-Definition-empty-.xml +11 -0
- data/test/reports/TEST-HammerCLI-Output-Definition.xml +11 -0
- data/test/reports/TEST-HammerCLI-Output-Dsl-collection.xml +13 -0
- data/test/reports/TEST-HammerCLI-Output-Dsl-custom-fields.xml +11 -0
- data/test/reports/TEST-HammerCLI-Output-Dsl-fields.xml +15 -0
- data/test/reports/TEST-HammerCLI-Output-Dsl-label.xml +13 -0
- data/test/reports/TEST-HammerCLI-Output-Dsl-path-definition.xml +13 -0
- data/test/reports/TEST-HammerCLI-Output-Dsl.xml +9 -0
- data/test/reports/TEST-HammerCLI-Output-FieldFilter.xml +13 -0
- data/test/reports/TEST-HammerCLI-Output-Formatters-BooleanFormatter.xml +11 -0
- data/test/reports/TEST-HammerCLI-Output-Formatters-ColorFormatter.xml +9 -0
- data/test/reports/TEST-HammerCLI-Output-Formatters-DateFormatter.xml +11 -0
- data/test/reports/TEST-HammerCLI-Output-Formatters-FieldFormatter.xml +13 -0
- data/test/reports/TEST-HammerCLI-Output-Formatters-FormatterContainer.xml +13 -0
- data/test/reports/TEST-HammerCLI-Output-Formatters-FormatterLibrary.xml +11 -0
- data/test/reports/TEST-HammerCLI-Output-Formatters-KeyValueFormatter.xml +13 -0
- data/test/reports/TEST-HammerCLI-Output-Formatters-ListFormatter.xml +13 -0
- data/test/reports/TEST-HammerCLI-Output-Formatters-LongTextFormatter.xml +13 -0
- data/test/reports/TEST-HammerCLI-Output-Output-adapters.xml +17 -0
- data/test/reports/TEST-HammerCLI-Output-Output-data.xml +15 -0
- data/test/reports/TEST-HammerCLI-Output-Output-formatters.xml +9 -0
- data/test/reports/TEST-HammerCLI-Output-Output-messages.xml +19 -0
- data/test/reports/TEST-HammerCLI-Output-Output.xml +7 -0
- data/test/reports/TEST-HammerCLI-Output-RecordCollection.xml +13 -0
- data/test/reports/TEST-HammerCLI-Settings-load-from-paths.xml +15 -0
- data/test/reports/TEST-HammerCLI-Settings.xml +25 -0
- data/test/reports/TEST-HammerCLI-ShellHistory-loading-old-history.xml +11 -0
- data/test/reports/TEST-HammerCLI-ShellHistory-saving-history.xml +15 -0
- data/test/reports/TEST-HammerCLI-ShellHistory.xml +7 -0
- data/test/reports/TEST-MiniTest-Spec.xml +7 -0
- data/test/reports/TEST-String-camelize.xml +11 -0
- data/test/reports/TEST-String-formatting.xml +17 -0
- data/test/reports/TEST-String-indent.xml +11 -0
- data/test/reports/TEST-String-interactive-.xml +13 -0
- data/test/reports/TEST-String.xml +7 -0
- data/test/reports/TEST-constraints-HammerCLI-Validator-AllConstraint-exist-.xml +13 -0
- data/test/reports/TEST-constraints-HammerCLI-Validator-AllConstraint.xml +7 -0
- data/test/reports/TEST-constraints-HammerCLI-Validator-AnyConstraint-exist-.xml +13 -0
- data/test/reports/TEST-constraints-HammerCLI-Validator-AnyConstraint.xml +7 -0
- data/test/reports/TEST-constraints-HammerCLI-Validator-BaseConstraint-exist-.xml +9 -0
- data/test/reports/TEST-constraints-HammerCLI-Validator-BaseConstraint-rejected.xml +13 -0
- data/test/reports/TEST-constraints-HammerCLI-Validator-BaseConstraint-required.xml +13 -0
- data/test/reports/TEST-constraints-HammerCLI-Validator-BaseConstraint.xml +7 -0
- data/test/reports/TEST-constraints.xml +7 -0
- data/test/unit/help/definition/list_test.rb +12 -0
- data/test/unit/help/definition/note_test.rb +18 -0
- data/test/unit/help/definition/text_test.rb +5 -0
- data/test/unit/output/adapter/abstract_test.rb +9 -9
- data/test/unit/output/formatters_test.rb +49 -6
- metadata +348 -67
@@ -0,0 +1,15 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<testsuite name="HammerCLI::Settings::load from paths" tests="4" time="0.002082013" failures="0" errors="0" skipped="0" assertions="8">
|
3
|
+
<testcase name="test_0004_loads settings from dir" time="0.001015615" assertions="4">
|
4
|
+
</testcase>
|
5
|
+
<testcase name="test_0002_clears path history on clear invokation" time="0.000203806" assertions="1">
|
6
|
+
</testcase>
|
7
|
+
<testcase name="test_0003_store config path history" time="0.000329641" assertions="1">
|
8
|
+
</testcase>
|
9
|
+
<testcase name="test_0001_loads settings from file" time="0.000327472" assertions="2">
|
10
|
+
</testcase>
|
11
|
+
<system-out>
|
12
|
+
</system-out>
|
13
|
+
<system-err>
|
14
|
+
</system-err>
|
15
|
+
</testsuite>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<testsuite name="HammerCLI::Settings" tests="9" time="0.000795377" failures="0" errors="0" skipped="0" assertions="19">
|
3
|
+
<testcase name="test_0001_returns nil when nothing is loaded" time="0.000118872" assertions="2">
|
4
|
+
</testcase>
|
5
|
+
<testcase name="test_0006_loads all settings" time="6.3553e-05" assertions="2">
|
6
|
+
</testcase>
|
7
|
+
<testcase name="test_0004_takes both strings and symbols" time="5.5445e-05" assertions="2">
|
8
|
+
</testcase>
|
9
|
+
<testcase name="test_0005_finds nested settings" time="5.7768e-05" assertions="3">
|
10
|
+
</testcase>
|
11
|
+
<testcase name="test_0003_returns correct value" time="5.8495e-05" assertions="1">
|
12
|
+
</testcase>
|
13
|
+
<testcase name="test_0007_dumps all settings" time="5.6246e-05" assertions="1">
|
14
|
+
</testcase>
|
15
|
+
<testcase name="test_0009_clear wipes all settings" time="4.9296e-05" assertions="2">
|
16
|
+
</testcase>
|
17
|
+
<testcase name="test_0008_merges settings on second load" time="7.0802e-05" assertions="5">
|
18
|
+
</testcase>
|
19
|
+
<testcase name="test_0002_returns nil on unknown key" time="4.4578e-05" assertions="1">
|
20
|
+
</testcase>
|
21
|
+
<system-out>
|
22
|
+
</system-out>
|
23
|
+
<system-err>
|
24
|
+
</system-err>
|
25
|
+
</testsuite>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<testsuite name="HammerCLI::ShellHistory::loading old history" tests="2" time="0.000591805" failures="0" errors="0" skipped="0" assertions="2">
|
3
|
+
<testcase name="test_0001_skips loading if the file does not exist" time="0.000228018" assertions="1">
|
4
|
+
</testcase>
|
5
|
+
<testcase name="test_0002_preseeds readline's history" time="0.000185292" assertions="1">
|
6
|
+
</testcase>
|
7
|
+
<system-out>
|
8
|
+
</system-out>
|
9
|
+
<system-err>
|
10
|
+
</system-err>
|
11
|
+
</testsuite>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<testsuite name="HammerCLI::ShellHistory::saving history" tests="4" time="0.000956469" failures="0" errors="0" skipped="0" assertions="4">
|
3
|
+
<testcase name="test_0001_creates history file if it does not exist" time="0.00022899" assertions="1">
|
4
|
+
</testcase>
|
5
|
+
<testcase name="test_0003_appends to readline's history" time="0.000185984" assertions="1">
|
6
|
+
</testcase>
|
7
|
+
<testcase name="test_0002_appends history to the given file" time="0.000169983" assertions="1">
|
8
|
+
</testcase>
|
9
|
+
<testcase name="test_0004_doesn't save exit command" time="0.000154798" assertions="1">
|
10
|
+
</testcase>
|
11
|
+
<system-out>
|
12
|
+
</system-out>
|
13
|
+
<system-err>
|
14
|
+
</system-err>
|
15
|
+
</testsuite>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<testsuite name="String::camelize" tests="2" time="0.000337952" failures="0" errors="0" skipped="0" assertions="2">
|
3
|
+
<testcase name="test_0001_should camelize string with underscores" time="0.0001091" assertions="1">
|
4
|
+
</testcase>
|
5
|
+
<testcase name="test_0002_should not camelize string with dashes" time="5.1678e-05" assertions="1">
|
6
|
+
</testcase>
|
7
|
+
<system-out>
|
8
|
+
</system-out>
|
9
|
+
<system-err>
|
10
|
+
</system-err>
|
11
|
+
</testsuite>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<testsuite name="String::formatting" tests="5" time="0.00052804" failures="0" errors="0" skipped="0" assertions="5">
|
3
|
+
<testcase name="test_0003_should replace named parameters" time="0.000120653" assertions="1">
|
4
|
+
</testcase>
|
5
|
+
<testcase name="test_0002_should replace positional parameters" time="5.0694e-05" assertions="1">
|
6
|
+
</testcase>
|
7
|
+
<testcase name="test_0004_should replace named parameters with string keys" time="5.4219e-05" assertions="1">
|
8
|
+
</testcase>
|
9
|
+
<testcase name="test_0005_should replace named parameters marked with curly brackets" time="5.3821e-05" assertions="1">
|
10
|
+
</testcase>
|
11
|
+
<testcase name="test_0001_should not fail without expected parameters" time="5.197e-05" assertions="1">
|
12
|
+
</testcase>
|
13
|
+
<system-out>
|
14
|
+
</system-out>
|
15
|
+
<system-err>
|
16
|
+
</system-err>
|
17
|
+
</testsuite>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<testsuite name="String::indent" tests="2" time="0.000342954" failures="0" errors="0" skipped="0" assertions="2">
|
3
|
+
<testcase name="test_0002_indents multi line string" time="0.000108296" assertions="1">
|
4
|
+
</testcase>
|
5
|
+
<testcase name="test_0001_indents single line string" time="4.4031e-05" assertions="1">
|
6
|
+
</testcase>
|
7
|
+
<system-out>
|
8
|
+
</system-out>
|
9
|
+
<system-err>
|
10
|
+
</system-err>
|
11
|
+
</testsuite>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<testsuite name="String::interactive?" tests="3" time="0.001375686" failures="0" errors="0" skipped="0" assertions="3">
|
3
|
+
<testcase name="test_0001_should be true when called in tty" time="0.00042329" assertions="1">
|
4
|
+
</testcase>
|
5
|
+
<testcase name="test_0002_should by false when cli arg set" time="0.000403856" assertions="1">
|
6
|
+
</testcase>
|
7
|
+
<testcase name="test_0003_should by false when turned off in cfg" time="0.000364321" assertions="1">
|
8
|
+
</testcase>
|
9
|
+
<system-out>
|
10
|
+
</system-out>
|
11
|
+
<system-err>
|
12
|
+
</system-err>
|
13
|
+
</testsuite>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<testsuite name="constraints::HammerCLI::Validator::AllConstraint::exist?" tests="3" time="0.000590622" failures="0" errors="0" skipped="0" assertions="3">
|
3
|
+
<testcase name="test_0002_should return true when all the options exist" time="0.000196018" assertions="1">
|
4
|
+
</testcase>
|
5
|
+
<testcase name="test_0001_should return true when no options are passed" time="0.000113036" assertions="1">
|
6
|
+
</testcase>
|
7
|
+
<testcase name="test_0003_should return false when one of the options is missing" time="9.6605e-05" assertions="1">
|
8
|
+
</testcase>
|
9
|
+
<system-out>
|
10
|
+
</system-out>
|
11
|
+
<system-err>
|
12
|
+
</system-err>
|
13
|
+
</testsuite>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<testsuite name="constraints::HammerCLI::Validator::AnyConstraint::exist?" tests="3" time="0.000586351" failures="0" errors="0" skipped="0" assertions="3">
|
3
|
+
<testcase name="test_0002_should return true when one of the options exist" time="0.000170553" assertions="1">
|
4
|
+
</testcase>
|
5
|
+
<testcase name="test_0001_should return true when no options are passed" time="0.000112862" assertions="1">
|
6
|
+
</testcase>
|
7
|
+
<testcase name="test_0003_should return false when all the options are missing" time="0.000111747" assertions="1">
|
8
|
+
</testcase>
|
9
|
+
<system-out>
|
10
|
+
</system-out>
|
11
|
+
<system-err>
|
12
|
+
</system-err>
|
13
|
+
</testsuite>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<testsuite name="constraints::HammerCLI::Validator::BaseConstraint::exist?" tests="1" time="0.000343672" failures="0" errors="0" skipped="0" assertions="1">
|
3
|
+
<testcase name="test_0001_throws not implemented error" time="0.000171895" assertions="1">
|
4
|
+
</testcase>
|
5
|
+
<system-out>
|
6
|
+
</system-out>
|
7
|
+
<system-err>
|
8
|
+
</system-err>
|
9
|
+
</testsuite>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<testsuite name="constraints::HammerCLI::Validator::BaseConstraint::rejected" tests="3" time="0.001188178" failures="0" errors="0" skipped="0" assertions="3">
|
3
|
+
<testcase name="test_0003_should return nil when exist? returns true" time="0.000339906" assertions="1">
|
4
|
+
</testcase>
|
5
|
+
<testcase name="test_0002_should raise exception with a message" time="0.000330188" assertions="1">
|
6
|
+
</testcase>
|
7
|
+
<testcase name="test_0001_should raise exception when exist? returns true" time="0.000327038" assertions="1">
|
8
|
+
</testcase>
|
9
|
+
<system-out>
|
10
|
+
</system-out>
|
11
|
+
<system-err>
|
12
|
+
</system-err>
|
13
|
+
</testsuite>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<testsuite name="constraints::HammerCLI::Validator::BaseConstraint::required" tests="3" time="0.001221194" failures="0" errors="0" skipped="0" assertions="2">
|
3
|
+
<testcase name="test_0003_should return nil when exist? returns true" time="0.000335162" assertions="1">
|
4
|
+
</testcase>
|
5
|
+
<testcase name="test_0001_should raise exception when exist? returns true" time="0.000327945" assertions="1">
|
6
|
+
</testcase>
|
7
|
+
<testcase name="test_0002_should raise exception with a message" time="0.000337518" assertions="0">
|
8
|
+
</testcase>
|
9
|
+
<system-out>
|
10
|
+
</system-out>
|
11
|
+
<system-err>
|
12
|
+
</system-err>
|
13
|
+
</testsuite>
|
@@ -5,6 +5,7 @@ describe HammerCLI::Help::List do
|
|
5
5
|
let(:first_item) { [:first, 'This is first line'] }
|
6
6
|
let(:second_item) { [:second, 'This is second line'] }
|
7
7
|
let(:list) { HammerCLI::Help::List.new([first_item, second_item]) }
|
8
|
+
let(:item_with_options) { [:third, 'This is bold item', { bold: true }] }
|
8
9
|
|
9
10
|
it 'builds string' do
|
10
11
|
list.build_string.must_equal [
|
@@ -13,5 +14,16 @@ describe HammerCLI::Help::List do
|
|
13
14
|
''
|
14
15
|
].join("\n")
|
15
16
|
end
|
17
|
+
|
18
|
+
it 'ensures that item options are used' do
|
19
|
+
list = HammerCLI::Help::List.new([first_item, second_item, item_with_options])
|
20
|
+
changed_item = HighLine.color('third', :bold)
|
21
|
+
list.build_string.must_equal [
|
22
|
+
'first This is first line',
|
23
|
+
'second This is second line',
|
24
|
+
"#{changed_item} This is bold item",
|
25
|
+
''
|
26
|
+
].join("\n")
|
27
|
+
end
|
16
28
|
end
|
17
29
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '../../test_helper')
|
2
|
+
|
3
|
+
describe HammerCLI::Help::Note do
|
4
|
+
describe '#build_string' do
|
5
|
+
let(:text) { 'text' }
|
6
|
+
let(:note) { HammerCLI::Help::Note.new(text) }
|
7
|
+
|
8
|
+
it 'builds string' do
|
9
|
+
note.build_string.must_equal 'NOTE: text'
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'ensures that options are used' do
|
13
|
+
label = 'DEPRECATION'
|
14
|
+
note = HammerCLI::Help::Note.new(text, label: label, richtext: true)
|
15
|
+
note.build_string.must_equal "#{HighLine.color("#{label}:", :bold)} #{text}"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -7,5 +7,10 @@ describe HammerCLI::Help::Text do
|
|
7
7
|
it 'builds string' do
|
8
8
|
text.build_string.must_equal 'text'
|
9
9
|
end
|
10
|
+
|
11
|
+
it 'ensures that options are used' do
|
12
|
+
text = HammerCLI::Help::Text.new('text', richtext: true)
|
13
|
+
text.build_string.must_equal HighLine.color('text', :bold)
|
14
|
+
end
|
10
15
|
end
|
11
16
|
end
|
@@ -6,8 +6,8 @@ describe HammerCLI::Output::Adapter::Abstract do
|
|
6
6
|
let(:adapter) { HammerCLI::Output::Adapter::Abstract.new }
|
7
7
|
|
8
8
|
|
9
|
-
it "should have
|
10
|
-
adapter.
|
9
|
+
it "should have features" do
|
10
|
+
adapter.features.must_be_kind_of Array
|
11
11
|
end
|
12
12
|
|
13
13
|
class UnknownTestFormatter < HammerCLI::Output::Formatters::FieldFormatter
|
@@ -15,8 +15,8 @@ describe HammerCLI::Output::Adapter::Abstract do
|
|
15
15
|
data+'.'
|
16
16
|
end
|
17
17
|
|
18
|
-
def
|
19
|
-
[
|
18
|
+
def required_features
|
19
|
+
%i[unknown]
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
@@ -24,7 +24,7 @@ describe HammerCLI::Output::Adapter::Abstract do
|
|
24
24
|
adapter.paginate_by_default?.must_equal true
|
25
25
|
end
|
26
26
|
|
27
|
-
it "should filter formatters with incompatible
|
27
|
+
it "should filter formatters with incompatible features" do
|
28
28
|
|
29
29
|
HammerCLI::Output::Formatters::FormatterLibrary.expects(:new).with({ :type => [] })
|
30
30
|
adapter = adapter_class.new({}, {:type => [UnknownTestFormatter.new]})
|
@@ -34,18 +34,18 @@ describe HammerCLI::Output::Adapter::Abstract do
|
|
34
34
|
formatter = UnknownTestFormatter.new
|
35
35
|
HammerCLI::Output::Formatters::FormatterLibrary.expects(:new).with({ :type => [formatter] })
|
36
36
|
# set :unknown tag to abstract
|
37
|
-
adapter_class.any_instance.stubs(:
|
37
|
+
adapter_class.any_instance.stubs(:features).returns([:unknown])
|
38
38
|
adapter = adapter_class.new({}, {:type => [formatter]})
|
39
39
|
end
|
40
40
|
|
41
41
|
it "should put serializers first" do
|
42
42
|
formatter1 = UnknownTestFormatter.new
|
43
|
-
formatter1.stubs(:
|
43
|
+
formatter1.stubs(:required_features).returns([])
|
44
44
|
formatter2 = UnknownTestFormatter.new
|
45
|
-
formatter2.stubs(:
|
45
|
+
formatter2.stubs(:required_features).returns([:serialized])
|
46
46
|
HammerCLI::Output::Formatters::FormatterLibrary.expects(:new).with({ :type => [formatter2, formatter1] })
|
47
47
|
# set :unknown tag to abstract
|
48
|
-
adapter_class.any_instance.stubs(:
|
48
|
+
adapter_class.any_instance.stubs(:features).returns([:serialized])
|
49
49
|
adapter = adapter_class.new({}, {:type => [formatter1, formatter2]})
|
50
50
|
end
|
51
51
|
|
@@ -20,14 +20,14 @@ describe HammerCLI::Output::Formatters::FieldFormatter do
|
|
20
20
|
formatter.respond_to?(:format).must_equal true
|
21
21
|
end
|
22
22
|
|
23
|
-
it "has
|
24
|
-
formatter.
|
23
|
+
it "has features" do
|
24
|
+
formatter.required_features.must_be_kind_of Array
|
25
25
|
end
|
26
26
|
|
27
|
-
it "should know if it has matching
|
28
|
-
formatter.stubs(:
|
29
|
-
formatter.match?([:
|
30
|
-
formatter.match?([:
|
27
|
+
it "should know if it has matching features" do
|
28
|
+
formatter.stubs(:required_features).returns([:feature])
|
29
|
+
formatter.match?([:feature]).must_equal true
|
30
|
+
formatter.match?([:nofeature]).must_equal false
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
@@ -156,6 +156,49 @@ describe HammerCLI::Output::Formatters::LongTextFormatter do
|
|
156
156
|
|
157
157
|
end
|
158
158
|
|
159
|
+
describe HammerCLI::Output::Formatters::InlineTextFormatter do
|
160
|
+
let(:formatter) { HammerCLI::Output::Formatters::InlineTextFormatter.new }
|
161
|
+
|
162
|
+
it 'prints multiline text to one line' do
|
163
|
+
formatter.format("Some\nmultiline\ntext").must_equal('Some multiline text')
|
164
|
+
end
|
165
|
+
|
166
|
+
it 'accepts nil' do
|
167
|
+
formatter.format(nil).must_equal('')
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
171
|
+
describe HammerCLI::Output::Formatters::MultilineTextFormatter do
|
172
|
+
let(:formatter) { HammerCLI::Output::Formatters::MultilineTextFormatter.new }
|
173
|
+
let(:multiline_text) { "Some\nmultiline\ntext" }
|
174
|
+
let(:indentation) { "\n " }
|
175
|
+
let(:long_multiline_text) { 'Lorem ipsum dolor' * 5 }
|
176
|
+
|
177
|
+
it 'prints multiline text' do
|
178
|
+
formatter.format(multiline_text).must_equal(
|
179
|
+
"#{indentation}Some#{indentation}multiline#{indentation}text"
|
180
|
+
)
|
181
|
+
end
|
182
|
+
|
183
|
+
it 'accepts nil' do
|
184
|
+
formatter.format(nil).must_equal(indentation)
|
185
|
+
end
|
186
|
+
|
187
|
+
it 'accepts field width param' do
|
188
|
+
formatter.format(long_multiline_text, width: 80)
|
189
|
+
.must_equal(indentation + long_multiline_text[0..-6] +
|
190
|
+
indentation + long_multiline_text[-5..-1])
|
191
|
+
end
|
192
|
+
|
193
|
+
it 'deals with strange params' do
|
194
|
+
formatter.format(long_multiline_text, width: -1)
|
195
|
+
.must_equal(indentation + long_multiline_text[0..-26] +
|
196
|
+
indentation + long_multiline_text[-25..-1])
|
197
|
+
formatter.format(long_multiline_text, width: 999)
|
198
|
+
.must_equal(indentation + long_multiline_text)
|
199
|
+
end
|
200
|
+
end
|
201
|
+
|
159
202
|
describe HammerCLI::Output::Formatters::BooleanFormatter do
|
160
203
|
|
161
204
|
let(:formatter) { HammerCLI::Output::Formatters::BooleanFormatter.new }
|