hammer_cli 0.18.1 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 }
|