puppet 5.5.12-x64-mingw32 → 5.5.13-x64-mingw32
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.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Gemfile +0 -5
- data/Gemfile.lock +11 -11
- data/lib/puppet/application/filebucket.rb +4 -0
- data/lib/puppet/configurer.rb +9 -3
- data/lib/puppet/indirector/request.rb +26 -15
- data/lib/puppet/indirector/rest.rb +16 -7
- data/lib/puppet/network/http/connection.rb +15 -7
- data/lib/puppet/transaction/event_manager.rb +1 -5
- data/lib/puppet/type/file/source.rb +0 -1
- data/lib/puppet/util/http_proxy.rb +3 -2
- data/lib/puppet/version.rb +1 -1
- data/locales/puppet.pot +108 -36
- data/man/man5/puppet.conf.5 +2 -2
- data/man/man8/puppet-agent.8 +1 -1
- data/man/man8/puppet-apply.8 +1 -1
- data/man/man8/puppet-ca.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-cert.8 +1 -1
- data/man/man8/puppet-certificate.8 +1 -1
- data/man/man8/puppet-certificate_request.8 +1 -1
- data/man/man8/puppet-certificate_revocation_list.8 +1 -1
- data/man/man8/puppet-config.8 +1 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +1 -1
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +1 -1
- data/man/man8/puppet-facts.8 +1 -1
- data/man/man8/puppet-filebucket.8 +1 -1
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-key.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-man.8 +1 -1
- data/man/man8/puppet-master.8 +1 -1
- data/man/man8/puppet-module.8 +1 -1
- data/man/man8/puppet-node.8 +1 -1
- data/man/man8/puppet-parser.8 +1 -1
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +1 -1
- data/man/man8/puppet-status.8 +1 -1
- data/man/man8/puppet.8 +2 -2
- data/spec/integration/agent/logging_spec.rb +5 -7
- data/spec/integration/application/apply_spec.rb +28 -26
- data/spec/integration/application/doc_spec.rb +1 -2
- data/spec/integration/application/lookup_spec.rb +5 -5
- data/spec/integration/configurer_spec.rb +5 -6
- data/spec/integration/defaults_spec.rb +5 -6
- data/spec/integration/directory_environments_spec.rb +1 -1
- data/spec/integration/faces/ca_spec.rb +2 -3
- data/spec/integration/faces/config_spec.rb +3 -4
- data/spec/integration/faces/documentation_spec.rb +0 -1
- data/spec/integration/faces/plugin_spec.rb +1 -1
- data/spec/integration/file_bucket/file_spec.rb +3 -5
- data/spec/integration/file_serving/content_spec.rb +0 -1
- data/spec/integration/file_serving/fileset_spec.rb +0 -1
- data/spec/integration/file_serving/metadata_spec.rb +0 -1
- data/spec/integration/file_serving/terminus_helper_spec.rb +0 -1
- data/spec/integration/indirector/catalog/compiler_spec.rb +10 -11
- data/spec/integration/indirector/direct_file_server_spec.rb +1 -1
- data/spec/integration/indirector/facts/facter_spec.rb +5 -5
- data/spec/integration/indirector/file_content/file_server_spec.rb +7 -8
- data/spec/integration/indirector/file_metadata/file_server_spec.rb +7 -8
- data/spec/integration/indirector/node/ldap_spec.rb +2 -3
- data/spec/integration/network/authconfig_spec.rb +23 -24
- data/spec/integration/network/formats_spec.rb +0 -1
- data/spec/integration/network/http/api/indirected_routes_spec.rb +0 -1
- data/spec/integration/node/environment_spec.rb +0 -1
- data/spec/integration/node/facts_spec.rb +9 -10
- data/spec/integration/node_spec.rb +6 -7
- data/spec/integration/parser/catalog_spec.rb +4 -2
- data/spec/integration/parser/collection_spec.rb +1 -2
- data/spec/integration/parser/compiler_spec.rb +6 -6
- data/spec/integration/parser/scope_spec.rb +1 -1
- data/spec/integration/parser/undef_param_spec.rb +1 -1
- data/spec/integration/provider/cron/crontab_spec.rb +8 -10
- data/spec/integration/provider/mailalias/aliases_spec.rb +0 -1
- data/spec/integration/provider/mount_spec.rb +9 -9
- data/spec/integration/provider/service/init_spec.rb +4 -5
- data/spec/integration/provider/service/systemd_spec.rb +0 -2
- data/spec/integration/provider/service/windows_spec.rb +1 -2
- data/spec/integration/provider/ssh_authorized_key_spec.rb +6 -8
- data/spec/integration/provider/sshkey_spec.rb +6 -12
- data/spec/integration/provider/yumrepo_spec.rb +8 -12
- data/spec/integration/reference/providers_spec.rb +0 -1
- data/spec/integration/reports_spec.rb +1 -2
- data/spec/integration/resource/catalog_spec.rb +14 -17
- data/spec/integration/resource/type_collection_spec.rb +4 -5
- data/spec/integration/ssl/certificate_authority_spec.rb +0 -1
- data/spec/integration/ssl/certificate_request_spec.rb +0 -1
- data/spec/integration/ssl/certificate_revocation_list_spec.rb +0 -1
- data/spec/integration/ssl/host_spec.rb +0 -1
- data/spec/integration/ssl/key_spec.rb +0 -1
- data/spec/integration/test/test_helper_spec.rb +1 -2
- data/spec/integration/transaction/report_spec.rb +6 -11
- data/spec/integration/transaction_spec.rb +18 -19
- data/spec/integration/type/exec_spec.rb +0 -1
- data/spec/integration/type/file_spec.rb +13 -14
- data/spec/integration/type/nagios_spec.rb +3 -5
- data/spec/integration/type/package_spec.rb +19 -23
- data/spec/integration/type/tidy_spec.rb +1 -2
- data/spec/integration/type/user_spec.rb +0 -1
- data/spec/integration/type_spec.rb +0 -1
- data/spec/integration/util/autoload_spec.rb +1 -2
- data/spec/integration/util/rdoc/parser_spec.rb +0 -1
- data/spec/integration/util/settings_spec.rb +0 -1
- data/spec/integration/util/windows/adsi_spec.rb +3 -5
- data/spec/integration/util/windows/principal_spec.rb +0 -1
- data/spec/integration/util/windows/process_spec.rb +4 -6
- data/spec/integration/util/windows/registry_spec.rb +41 -51
- data/spec/integration/util/windows/security_spec.rb +2 -4
- data/spec/integration/util/windows/user_spec.rb +18 -20
- data/spec/integration/util_spec.rb +4 -7
- data/spec/lib/puppet_spec/compiler.rb +1 -1
- data/spec/lib/puppet_spec/files.rb +0 -1
- data/spec/lib/puppet_spec/module_tool/shared_functions.rb +1 -1
- data/spec/lib/puppet_spec/scope.rb +1 -2
- data/spec/shared_behaviours/all_parsedfile_providers.rb +1 -1
- data/spec/shared_behaviours/file_server_terminus.rb +8 -9
- data/spec/shared_behaviours/file_serving.rb +6 -8
- data/spec/shared_behaviours/file_serving_model.rb +4 -6
- data/spec/shared_behaviours/hiera_indirections.rb +3 -4
- data/spec/shared_behaviours/iterative_functions.rb +0 -1
- data/spec/shared_behaviours/memory_terminus.rb +2 -2
- data/spec/shared_examples/rhel_package_provider.rb +112 -70
- data/spec/spec_helper.rb +11 -2
- data/spec/unit/agent/disabler_spec.rb +4 -5
- data/spec/unit/agent/locker_spec.rb +12 -13
- data/spec/unit/agent_spec.rb +80 -85
- data/spec/unit/application/agent_spec.rb +88 -93
- data/spec/unit/application/apply_spec.rb +78 -79
- data/spec/unit/application/cert_spec.rb +42 -49
- data/spec/unit/application/certificate_spec.rb +2 -3
- data/spec/unit/application/config_spec.rb +0 -1
- data/spec/unit/application/describe_spec.rb +6 -7
- data/spec/unit/application/device_spec.rb +175 -184
- data/spec/unit/application/doc_spec.rb +44 -46
- data/spec/unit/application/face_base_spec.rb +61 -62
- data/spec/unit/application/facts_spec.rb +3 -4
- data/spec/unit/application/filebucket_spec.rb +66 -74
- data/spec/unit/application/indirection_base_spec.rb +8 -6
- data/spec/unit/application/lookup_spec.rb +26 -26
- data/spec/unit/application/master_spec.rb +95 -95
- data/spec/unit/application/resource_spec.rb +42 -48
- data/spec/unit/application_spec.rb +74 -84
- data/spec/unit/capability_spec.rb +9 -6
- data/spec/unit/configurer/downloader_spec.rb +20 -21
- data/spec/unit/configurer/fact_handler_spec.rb +2 -3
- data/spec/unit/configurer/plugin_handler_spec.rb +41 -8
- data/spec/unit/configurer_spec.rb +190 -193
- data/spec/unit/confine/exists_spec.rb +17 -15
- data/spec/unit/confine/false_spec.rb +5 -6
- data/spec/unit/confine/feature_spec.rb +7 -5
- data/spec/unit/confine/true_spec.rb +5 -6
- data/spec/unit/confine/variable_spec.rb +14 -15
- data/spec/unit/confine_collection_spec.rb +28 -29
- data/spec/unit/confine_spec.rb +13 -14
- data/spec/unit/confiner_spec.rb +10 -11
- data/spec/unit/context/trusted_information_spec.rb +1 -1
- data/spec/unit/daemon_spec.rb +34 -35
- data/spec/unit/data_providers/function_data_provider_spec.rb +0 -1
- data/spec/unit/data_providers/hiera_data_provider_spec.rb +0 -1
- data/spec/unit/datatypes_spec.rb +3 -4
- data/spec/unit/defaults_spec.rb +17 -12
- data/spec/unit/environments_spec.rb +7 -7
- data/spec/unit/etc_spec.rb +30 -32
- data/spec/unit/external/pson_spec.rb +0 -1
- data/spec/unit/face/ca_spec.rb +0 -1
- data/spec/unit/face/catalog_spec.rb +0 -1
- data/spec/unit/face/certificate_request_spec.rb +0 -1
- data/spec/unit/face/certificate_revocation_list_spec.rb +0 -1
- data/spec/unit/face/certificate_spec.rb +7 -10
- data/spec/unit/face/config_spec.rb +31 -35
- data/spec/unit/face/epp_face_spec.rb +3 -4
- data/spec/unit/face/facts_spec.rb +5 -6
- data/spec/unit/face/generate_spec.rb +4 -5
- data/spec/unit/face/help_spec.rb +7 -8
- data/spec/unit/face/key_spec.rb +0 -1
- data/spec/unit/face/man_spec.rb +1 -2
- data/spec/unit/face/module/build_spec.rb +17 -17
- data/spec/unit/face/module/install_spec.rb +3 -5
- data/spec/unit/face/module/list_spec.rb +2 -12
- data/spec/unit/face/module/search_spec.rb +11 -9
- data/spec/unit/face/module/uninstall_spec.rb +4 -8
- data/spec/unit/face/node_spec.rb +33 -34
- data/spec/unit/face/parser_spec.rb +3 -3
- data/spec/unit/face/plugin_spec.rb +36 -9
- data/spec/unit/face/status_spec.rb +0 -1
- data/spec/unit/file_bucket/dipper_spec.rb +24 -20
- data/spec/unit/file_bucket/file_spec.rb +0 -2
- data/spec/unit/file_serving/base_spec.rb +16 -17
- data/spec/unit/file_serving/configuration/parser_spec.rb +27 -28
- data/spec/unit/file_serving/configuration_spec.rb +63 -66
- data/spec/unit/file_serving/content_spec.rb +10 -11
- data/spec/unit/file_serving/fileset_spec.rb +63 -58
- data/spec/unit/file_serving/http_metadata_spec.rb +8 -7
- data/spec/unit/file_serving/metadata_spec.rb +36 -36
- data/spec/unit/file_serving/mount/file_spec.rb +31 -32
- data/spec/unit/file_serving/mount/locales_spec.rb +23 -24
- data/spec/unit/file_serving/mount/modules_spec.rb +14 -15
- data/spec/unit/file_serving/mount/pluginfacts_spec.rb +23 -24
- data/spec/unit/file_serving/mount/plugins_spec.rb +23 -24
- data/spec/unit/file_serving/mount/tasks_spec.rb +14 -15
- data/spec/unit/file_serving/mount_spec.rb +0 -1
- data/spec/unit/file_serving/terminus_helper_spec.rb +37 -42
- data/spec/unit/file_serving/terminus_selector_spec.rb +12 -13
- data/spec/unit/file_system/uniquefile_spec.rb +4 -4
- data/spec/unit/file_system_spec.rb +2 -2
- data/spec/unit/forge/errors_spec.rb +1 -1
- data/spec/unit/forge/forge_spec.rb +13 -14
- data/spec/unit/forge/module_release_spec.rb +18 -18
- data/spec/unit/forge/repository_spec.rb +29 -30
- data/spec/unit/forge_spec.rb +15 -11
- data/spec/unit/functions/binary_file_spec.rb +3 -3
- data/spec/unit/functions/contain_spec.rb +0 -2
- data/spec/unit/functions/defined_spec.rb +0 -1
- data/spec/unit/functions/epp_spec.rb +2 -2
- data/spec/unit/functions/find_file_spec.rb +7 -7
- data/spec/unit/functions/include_spec.rb +0 -4
- data/spec/unit/functions/lookup_fixture_spec.rb +0 -1
- data/spec/unit/functions/lookup_spec.rb +1 -2
- data/spec/unit/functions/module_directory_spec.rb +12 -12
- data/spec/unit/functions/require_spec.rb +0 -3
- data/spec/unit/functions/shared.rb +5 -8
- data/spec/unit/functions/versioncmp_spec.rb +1 -2
- data/spec/unit/functions4_spec.rb +7 -8
- data/spec/unit/gettext/config_spec.rb +4 -4
- data/spec/unit/gettext/module_loading_spec.rb +7 -7
- data/spec/unit/graph/rb_tree_map_spec.rb +0 -2
- data/spec/unit/graph/relationship_graph_spec.rb +1 -2
- data/spec/unit/graph/simple_graph_spec.rb +8 -9
- data/spec/unit/hiera_puppet_spec.rb +20 -20
- data/spec/unit/indirector/catalog/compiler_spec.rb +147 -149
- data/spec/unit/indirector/catalog/json_spec.rb +1 -2
- data/spec/unit/indirector/catalog/msgpack_spec.rb +0 -1
- data/spec/unit/indirector/catalog/rest_spec.rb +0 -1
- data/spec/unit/indirector/catalog/store_configs_spec.rb +0 -1
- data/spec/unit/indirector/catalog/yaml_spec.rb +0 -1
- data/spec/unit/indirector/certificate/ca_spec.rb +2 -4
- data/spec/unit/indirector/certificate/disabled_ca_spec.rb +1 -2
- data/spec/unit/indirector/certificate/file_spec.rb +2 -3
- data/spec/unit/indirector/certificate/rest_spec.rb +8 -10
- data/spec/unit/indirector/certificate_request/ca_spec.rb +0 -1
- data/spec/unit/indirector/certificate_request/disabled_ca_spec.rb +1 -2
- data/spec/unit/indirector/certificate_request/file_spec.rb +0 -1
- data/spec/unit/indirector/certificate_request/rest_spec.rb +0 -1
- data/spec/unit/indirector/certificate_revocation_list/ca_spec.rb +1 -2
- data/spec/unit/indirector/certificate_revocation_list/disabled_ca_spec.rb +1 -2
- data/spec/unit/indirector/certificate_revocation_list/file_spec.rb +1 -2
- data/spec/unit/indirector/certificate_revocation_list/rest_spec.rb +2 -3
- data/spec/unit/indirector/certificate_status/file_spec.rb +2 -3
- data/spec/unit/indirector/certificate_status/rest_spec.rb +0 -1
- data/spec/unit/indirector/code_spec.rb +5 -6
- data/spec/unit/indirector/direct_file_server_spec.rb +33 -27
- data/spec/unit/indirector/envelope_spec.rb +1 -2
- data/spec/unit/indirector/exec_spec.rb +15 -14
- data/spec/unit/indirector/face_spec.rb +9 -9
- data/spec/unit/indirector/facts/facter_spec.rb +37 -43
- data/spec/unit/indirector/facts/network_device_spec.rb +8 -9
- data/spec/unit/indirector/facts/rest_spec.rb +7 -8
- data/spec/unit/indirector/facts/store_configs_spec.rb +0 -1
- data/spec/unit/indirector/facts/yaml_spec.rb +2 -4
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +3 -4
- data/spec/unit/indirector/file_bucket_file/rest_spec.rb +0 -1
- data/spec/unit/indirector/file_bucket_file/selector_spec.rb +4 -5
- data/spec/unit/indirector/file_content/file_server_spec.rb +0 -1
- data/spec/unit/indirector/file_content/file_spec.rb +0 -1
- data/spec/unit/indirector/file_content/rest_spec.rb +0 -1
- data/spec/unit/indirector/file_content/selector_spec.rb +0 -1
- data/spec/unit/indirector/file_metadata/file_server_spec.rb +0 -1
- data/spec/unit/indirector/file_metadata/file_spec.rb +12 -13
- data/spec/unit/indirector/file_metadata/rest_spec.rb +0 -1
- data/spec/unit/indirector/file_metadata/selector_spec.rb +0 -1
- data/spec/unit/indirector/file_server_spec.rb +99 -93
- data/spec/unit/indirector/indirection_spec.rb +242 -226
- data/spec/unit/indirector/json_spec.rb +7 -9
- data/spec/unit/indirector/key/ca_spec.rb +2 -3
- data/spec/unit/indirector/key/disabled_ca_spec.rb +1 -2
- data/spec/unit/indirector/key/file_spec.rb +25 -26
- data/spec/unit/indirector/ldap_spec.rb +34 -41
- data/spec/unit/indirector/memory_spec.rb +6 -7
- data/spec/unit/indirector/msgpack_spec.rb +7 -9
- data/spec/unit/indirector/node/exec_spec.rb +6 -6
- data/spec/unit/indirector/node/ldap_spec.rb +74 -76
- data/spec/unit/indirector/node/memory_spec.rb +2 -4
- data/spec/unit/indirector/node/msgpack_spec.rb +0 -1
- data/spec/unit/indirector/node/plain_spec.rb +2 -4
- data/spec/unit/indirector/node/rest_spec.rb +0 -1
- data/spec/unit/indirector/node/store_configs_spec.rb +0 -1
- data/spec/unit/indirector/node/write_only_yaml_spec.rb +1 -2
- data/spec/unit/indirector/node/yaml_spec.rb +0 -1
- data/spec/unit/indirector/none_spec.rb +5 -5
- data/spec/unit/indirector/plain_spec.rb +7 -8
- data/spec/unit/indirector/report/msgpack_spec.rb +0 -1
- data/spec/unit/indirector/report/processor_spec.rb +21 -22
- data/spec/unit/indirector/report/rest_spec.rb +11 -12
- data/spec/unit/indirector/report/yaml_spec.rb +0 -1
- data/spec/unit/indirector/request_spec.rb +11 -12
- data/spec/unit/indirector/resource/ral_spec.rb +47 -54
- data/spec/unit/indirector/resource/store_configs_spec.rb +0 -1
- data/spec/unit/indirector/rest_spec.rb +113 -110
- data/spec/unit/indirector/ssl_file_spec.rb +74 -77
- data/spec/unit/indirector/status/local_spec.rb +0 -1
- data/spec/unit/indirector/status/rest_spec.rb +0 -1
- data/spec/unit/indirector/store_configs_spec.rb +0 -1
- data/spec/unit/indirector/terminus_spec.rb +31 -29
- data/spec/unit/indirector/yaml_spec.rb +33 -32
- data/spec/unit/indirector_spec.rb +1 -2
- data/spec/unit/info_service_spec.rb +3 -1
- data/spec/unit/interface/action_builder_spec.rb +0 -1
- data/spec/unit/interface/action_manager_spec.rb +0 -1
- data/spec/unit/interface/action_spec.rb +2 -3
- data/spec/unit/interface/documentation_spec.rb +0 -1
- data/spec/unit/interface/face_collection_spec.rb +19 -12
- data/spec/unit/interface_spec.rb +3 -3
- data/spec/unit/man_spec.rb +3 -4
- data/spec/unit/module_spec.rb +46 -51
- data/spec/unit/module_tool/applications/builder_spec.rb +5 -5
- data/spec/unit/module_tool/applications/installer_spec.rb +10 -11
- data/spec/unit/module_tool/applications/searcher_spec.rb +3 -3
- data/spec/unit/module_tool/applications/uninstaller_spec.rb +1 -2
- data/spec/unit/module_tool/applications/unpacker_spec.rb +13 -13
- data/spec/unit/module_tool/applications/upgrader_spec.rb +5 -5
- data/spec/unit/module_tool/install_directory_spec.rb +8 -8
- data/spec/unit/module_tool/installed_modules_spec.rb +3 -3
- data/spec/unit/module_tool/tar/gnu_spec.rb +6 -6
- data/spec/unit/module_tool/tar/mini_spec.rb +12 -12
- data/spec/unit/module_tool/tar_spec.rb +12 -13
- data/spec/unit/module_tool_spec.rb +7 -12
- data/spec/unit/network/auth_config_parser_spec.rb +11 -13
- data/spec/unit/network/authconfig_spec.rb +17 -18
- data/spec/unit/network/authorization_spec.rb +4 -5
- data/spec/unit/network/authstore_spec.rb +0 -1
- data/spec/unit/network/format_handler_spec.rb +0 -1
- data/spec/unit/network/format_spec.rb +9 -10
- data/spec/unit/network/format_support_spec.rb +28 -29
- data/spec/unit/network/formats_spec.rb +4 -5
- data/spec/unit/network/http/api/ca/v1_spec.rb +1 -1
- data/spec/unit/network/http/api/indirected_routes_spec.rb +22 -29
- data/spec/unit/network/http/api/master/v3/authorization_spec.rb +2 -2
- data/spec/unit/network/http/api/master/v3/environment_spec.rb +1 -1
- data/spec/unit/network/http/api/master/v3/environments_spec.rb +6 -7
- data/spec/unit/network/http/api_spec.rb +1 -3
- data/spec/unit/network/http/compression_spec.rb +21 -22
- data/spec/unit/network/http/connection_spec.rb +39 -36
- data/spec/unit/network/http/factory_spec.rb +5 -6
- data/spec/unit/network/http/handler_spec.rb +9 -18
- data/spec/unit/network/http/nocache_pool_spec.rb +6 -7
- data/spec/unit/network/http/pool_spec.rb +28 -29
- data/spec/unit/network/http/rack/rest_spec.rb +24 -27
- data/spec/unit/network/http/rack_spec.rb +5 -6
- data/spec/unit/network/http/request_spec.rb +0 -2
- data/spec/unit/network/http/response_spec.rb +11 -13
- data/spec/unit/network/http/route_spec.rb +0 -1
- data/spec/unit/network/http/session_spec.rb +1 -2
- data/spec/unit/network/http/site_spec.rb +0 -1
- data/spec/unit/network/http/webrick/rest_spec.rb +40 -41
- data/spec/unit/network/http/webrick_spec.rb +49 -52
- data/spec/unit/network/http_pool_spec.rb +18 -9
- data/spec/unit/network/http_spec.rb +0 -1
- data/spec/unit/network/resolver_spec.rb +16 -17
- data/spec/unit/network/rights_spec.rb +52 -53
- data/spec/unit/network/server_spec.rb +12 -13
- data/spec/unit/node/environment_spec.rb +16 -14
- data/spec/unit/node/facts_spec.rb +5 -7
- data/spec/unit/node_spec.rb +4 -10
- data/spec/unit/other/selinux_spec.rb +2 -3
- data/spec/unit/parameter/boolean_spec.rb +1 -2
- data/spec/unit/parameter/package_options_spec.rb +1 -2
- data/spec/unit/parameter/path_spec.rb +0 -1
- data/spec/unit/parameter/value_collection_spec.rb +0 -1
- data/spec/unit/parameter/value_spec.rb +0 -1
- data/spec/unit/parameter_spec.rb +9 -9
- data/spec/unit/parser/ast/block_expression_spec.rb +6 -8
- data/spec/unit/parser/ast/leaf_spec.rb +20 -21
- data/spec/unit/parser/compiler_spec.rb +84 -96
- data/spec/unit/parser/environment_compiler_spec.rb +11 -9
- data/spec/unit/parser/files_spec.rb +0 -1
- data/spec/unit/parser/functions/create_resources_spec.rb +1 -1
- data/spec/unit/parser/functions/digest_spec.rb +0 -1
- data/spec/unit/parser/functions/fail_spec.rb +1 -2
- data/spec/unit/parser/functions/file_spec.rb +13 -14
- data/spec/unit/parser/functions/fqdn_rand_spec.rb +5 -6
- data/spec/unit/parser/functions/generate_spec.rb +7 -8
- data/spec/unit/parser/functions/inline_template_spec.rb +0 -1
- data/spec/unit/parser/functions/regsubst_spec.rb +0 -1
- data/spec/unit/parser/functions/scanf_spec.rb +0 -1
- data/spec/unit/parser/functions/shellquote_spec.rb +0 -1
- data/spec/unit/parser/functions/split_spec.rb +0 -1
- data/spec/unit/parser/functions/sprintf_spec.rb +0 -1
- data/spec/unit/parser/functions/tag_spec.rb +1 -2
- data/spec/unit/parser/functions/tagged_spec.rb +2 -3
- data/spec/unit/parser/functions/template_spec.rb +13 -13
- data/spec/unit/parser/functions/versioncmp_spec.rb +1 -2
- data/spec/unit/parser/functions_spec.rb +3 -4
- data/spec/unit/parser/relationship_spec.rb +0 -1
- data/spec/unit/parser/resource_spec.rb +42 -42
- data/spec/unit/parser/scope_spec.rb +39 -35
- data/spec/unit/parser/templatewrapper_spec.rb +11 -12
- data/spec/unit/parser/type_loader_spec.rb +17 -19
- data/spec/unit/pops/adaptable_spec.rb +0 -1
- data/spec/unit/pops/benchmark_spec.rb +0 -1
- data/spec/unit/pops/evaluator/access_ops_spec.rb +0 -1
- data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +0 -1
- data/spec/unit/pops/evaluator/basic_expressions_spec.rb +0 -1
- data/spec/unit/pops/evaluator/collections_ops_spec.rb +0 -1
- data/spec/unit/pops/evaluator/comparison_ops_spec.rb +0 -1
- data/spec/unit/pops/evaluator/conditionals_spec.rb +0 -1
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +6 -6
- data/spec/unit/pops/evaluator/logical_ops_spec.rb +0 -1
- data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +0 -1
- data/spec/unit/pops/evaluator/string_interpolation_spec.rb +0 -1
- data/spec/unit/pops/evaluator/variables_spec.rb +0 -1
- data/spec/unit/pops/factory_spec.rb +3 -4
- data/spec/unit/pops/issues_spec.rb +19 -20
- data/spec/unit/pops/loaders/loader_spec.rb +8 -4
- data/spec/unit/pops/loaders/loaders_spec.rb +30 -27
- data/spec/unit/pops/lookup/context_spec.rb +0 -1
- data/spec/unit/pops/lookup/interpolation_spec.rb +2 -3
- data/spec/unit/pops/merge_strategy_spec.rb +0 -1
- data/spec/unit/pops/migration_spec.rb +3 -5
- data/spec/unit/pops/model/model_spec.rb +0 -1
- data/spec/unit/pops/model/pn_transformer_spec.rb +0 -1
- data/spec/unit/pops/parser/locator_spec.rb +3 -6
- data/spec/unit/pops/parser/parse_application_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_calls_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_capabilities_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_conditionals_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_containers_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_plan_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_resource_spec.rb +0 -1
- data/spec/unit/pops/parser/parse_site_spec.rb +0 -1
- data/spec/unit/pops/parser/pn_parser_spec.rb +0 -1
- data/spec/unit/pops/pn_spec.rb +0 -1
- data/spec/unit/pops/resource/resource_type_impl_spec.rb +0 -1
- data/spec/unit/pops/serialization/serialization_spec.rb +1 -1
- data/spec/unit/pops/serialization/to_from_hr_spec.rb +1 -1
- data/spec/unit/pops/types/recursion_guard_spec.rb +10 -10
- data/spec/unit/pops/types/ruby_generator_spec.rb +2 -2
- data/spec/unit/pops/types/type_asserter_spec.rb +2 -2
- data/spec/unit/pops/types/type_calculator_spec.rb +36 -36
- data/spec/unit/pops/types/type_parser_spec.rb +13 -13
- data/spec/unit/pops/validator/validator_spec.rb +1 -2
- data/spec/unit/pops/visitor_spec.rb +0 -1
- data/spec/unit/property/boolean_spec.rb +1 -1
- data/spec/unit/property/ensure_spec.rb +0 -1
- data/spec/unit/property/keyvalue_spec.rb +32 -34
- data/spec/unit/property/list_spec.rb +26 -27
- data/spec/unit/property/ordered_list_spec.rb +10 -14
- data/spec/unit/property_spec.rb +42 -43
- data/spec/unit/provider/aix_object_spec.rb +47 -45
- data/spec/unit/provider/augeas/augeas_spec.rb +192 -192
- data/spec/unit/provider/cisco_spec.rb +1 -2
- data/spec/unit/provider/command_spec.rb +9 -9
- data/spec/unit/provider/cron/crontab_spec.rb +10 -11
- data/spec/unit/provider/cron/parsed_spec.rb +22 -24
- data/spec/unit/provider/exec/posix_spec.rb +6 -7
- data/spec/unit/provider/exec/shell_spec.rb +0 -1
- data/spec/unit/provider/exec/windows_spec.rb +2 -4
- data/spec/unit/provider/exec_spec.rb +0 -1
- data/spec/unit/provider/file/posix_spec.rb +22 -24
- data/spec/unit/provider/file/windows_spec.rb +15 -17
- data/spec/unit/provider/group/aix_spec.rb +3 -2
- data/spec/unit/provider/group/groupadd_spec.rb +30 -26
- data/spec/unit/provider/group/ldap_spec.rb +18 -18
- data/spec/unit/provider/group/pw_spec.rb +11 -11
- data/spec/unit/provider/group/windows_adsi_spec.rb +54 -54
- data/spec/unit/provider/host/parsed_spec.rb +6 -6
- data/spec/unit/provider/interface/cisco_spec.rb +20 -24
- data/spec/unit/provider/ldap_spec.rb +61 -62
- data/spec/unit/provider/macauthorization_spec.rb +26 -47
- data/spec/unit/provider/mcx/mcxcontent_spec.rb +45 -47
- data/spec/unit/provider/mount/parsed_spec.rb +18 -24
- data/spec/unit/provider/mount_spec.rb +57 -66
- data/spec/unit/provider/naginator_spec.rb +13 -14
- data/spec/unit/provider/nameservice/directoryservice_spec.rb +35 -36
- data/spec/unit/provider/nameservice_spec.rb +38 -40
- data/spec/unit/provider/network_device_spec.rb +28 -28
- data/spec/unit/provider/package/aix_spec.rb +15 -15
- data/spec/unit/provider/package/appdmg_spec.rb +13 -13
- data/spec/unit/provider/package/apt_spec.rb +44 -27
- data/spec/unit/provider/package/aptitude_spec.rb +6 -7
- data/spec/unit/provider/package/aptrpm_spec.rb +7 -12
- data/spec/unit/provider/package/base_spec.rb +4 -4
- data/spec/unit/provider/package/dnf_spec.rb +14 -16
- data/spec/unit/provider/package/dpkg_spec.rb +52 -52
- data/spec/unit/provider/package/freebsd_spec.rb +11 -11
- data/spec/unit/provider/package/gem_spec.rb +51 -43
- data/spec/unit/provider/package/hpux_spec.rb +8 -8
- data/spec/unit/provider/package/macports_spec.rb +46 -42
- data/spec/unit/provider/package/nim_spec.rb +30 -39
- data/spec/unit/provider/package/openbsd_spec.rb +36 -39
- data/spec/unit/provider/package/opkg_spec.rb +23 -26
- data/spec/unit/provider/package/pacman_spec.rb +97 -118
- data/spec/unit/provider/package/pip_spec.rb +69 -71
- data/spec/unit/provider/package/pkg_spec.rb +109 -109
- data/spec/unit/provider/package/pkgdmg_spec.rb +65 -63
- data/spec/unit/provider/package/pkgin_spec.rb +10 -8
- data/spec/unit/provider/package/pkgng_spec.rb +17 -18
- data/spec/unit/provider/package/pkgutil_spec.rb +45 -49
- data/spec/unit/provider/package/portage_spec.rb +70 -74
- data/spec/unit/provider/package/puppet_gem_spec.rb +28 -8
- data/spec/unit/provider/package/rpm_spec.rb +53 -64
- data/spec/unit/provider/package/sun_spec.rb +16 -18
- data/spec/unit/provider/package/tdnf_spec.rb +2 -2
- data/spec/unit/provider/package/up2date_spec.rb +2 -4
- data/spec/unit/provider/package/urpmi_spec.rb +15 -17
- data/spec/unit/provider/package/windows/exe_package_spec.rb +12 -15
- data/spec/unit/provider/package/windows/msi_package_spec.rb +19 -22
- data/spec/unit/provider/package/windows/package_spec.rb +37 -42
- data/spec/unit/provider/package/windows_spec.rb +36 -32
- data/spec/unit/provider/package/yum_spec.rb +4 -4
- data/spec/unit/provider/package/zypper_spec.rb +87 -87
- data/spec/unit/provider/parsedfile_spec.rb +44 -45
- data/spec/unit/provider/scheduled_task/win32_taskscheduler_spec.rb +120 -130
- data/spec/unit/provider/selboolean_spec.rb +9 -11
- data/spec/unit/provider/selmodule_spec.rb +20 -22
- data/spec/unit/provider/service/base_spec.rb +4 -5
- data/spec/unit/provider/service/bsd_spec.rb +27 -29
- data/spec/unit/provider/service/daemontools_spec.rb +35 -35
- data/spec/unit/provider/service/debian_spec.rb +37 -37
- data/spec/unit/provider/service/freebsd_spec.rb +18 -18
- data/spec/unit/provider/service/gentoo_spec.rb +50 -56
- data/spec/unit/provider/service/init_spec.rb +55 -55
- data/spec/unit/provider/service/launchd_spec.rb +138 -116
- data/spec/unit/provider/service/openbsd_spec.rb +50 -50
- data/spec/unit/provider/service/openrc_spec.rb +43 -46
- data/spec/unit/provider/service/openwrt_spec.rb +26 -32
- data/spec/unit/provider/service/rcng_spec.rb +14 -14
- data/spec/unit/provider/service/redhat_spec.rb +45 -43
- data/spec/unit/provider/service/runit_spec.rb +29 -27
- data/spec/unit/provider/service/smf_spec.rb +74 -66
- data/spec/unit/provider/service/src_spec.rb +46 -47
- data/spec/unit/provider/service/systemd_spec.rb +93 -98
- data/spec/unit/provider/service/upstart_spec.rb +74 -72
- data/spec/unit/provider/service/windows_spec.rb +33 -41
- data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +54 -68
- data/spec/unit/provider/sshkey/parsed_spec.rb +7 -8
- data/spec/unit/provider/user/aix_spec.rb +31 -31
- data/spec/unit/provider/user/directoryservice_spec.rb +109 -114
- data/spec/unit/provider/user/hpux_spec.rb +15 -15
- data/spec/unit/provider/user/ldap_spec.rb +57 -57
- data/spec/unit/provider/user/openbsd_spec.rb +10 -12
- data/spec/unit/provider/user/pw_spec.rb +37 -35
- data/spec/unit/provider/user/user_role_add_spec.rb +93 -93
- data/spec/unit/provider/user/useradd_spec.rb +93 -92
- data/spec/unit/provider/user/windows_adsi_spec.rb +59 -60
- data/spec/unit/provider/vlan/cisco_spec.rb +10 -12
- data/spec/unit/provider/yumrepo/inifile_spec.rb +75 -80
- data/spec/unit/provider/zfs/zfs_spec.rb +26 -21
- data/spec/unit/provider/zone/solaris_spec.rb +56 -42
- data/spec/unit/provider/zpool/zpool_spec.rb +19 -20
- data/spec/unit/provider_spec.rb +29 -29
- data/spec/unit/puppet_pal_2pec.rb +4 -5
- data/spec/unit/puppet_pal_spec.rb +0 -1
- data/spec/unit/puppet_spec.rb +7 -8
- data/spec/unit/relationship_spec.rb +0 -1
- data/spec/unit/reports/http_spec.rb +21 -23
- data/spec/unit/reports/store_spec.rb +3 -4
- data/spec/unit/reports_spec.rb +12 -14
- data/spec/unit/resource/capability_finder_spec.rb +18 -16
- data/spec/unit/resource/catalog_spec.rb +72 -68
- data/spec/unit/resource/status_spec.rb +6 -8
- data/spec/unit/resource/type_collection_spec.rb +17 -18
- data/spec/unit/resource/type_spec.rb +34 -35
- data/spec/unit/resource_spec.rb +36 -32
- data/spec/unit/scheduler/job_spec.rb +0 -1
- data/spec/unit/scheduler/scheduler_spec.rb +0 -1
- data/spec/unit/scheduler/splay_job_spec.rb +1 -2
- data/spec/unit/settings/array_setting_spec.rb +1 -1
- data/spec/unit/settings/autosign_setting_spec.rb +9 -9
- data/spec/unit/settings/certificate_revocation_setting_spec.rb +1 -1
- data/spec/unit/settings/config_file_spec.rb +0 -1
- data/spec/unit/settings/directory_setting_spec.rb +2 -7
- data/spec/unit/settings/duration_setting_spec.rb +1 -2
- data/spec/unit/settings/enum_setting_spec.rb +1 -1
- data/spec/unit/settings/environment_conf_spec.rb +4 -6
- data/spec/unit/settings/file_setting_spec.rb +44 -46
- data/spec/unit/settings/path_setting_spec.rb +1 -2
- data/spec/unit/settings/priority_setting_spec.rb +1 -2
- data/spec/unit/settings/string_setting_spec.rb +14 -15
- data/spec/unit/settings/terminus_setting_spec.rb +1 -2
- data/spec/unit/settings/value_translator_spec.rb +0 -1
- data/spec/unit/settings_spec.rb +226 -233
- data/spec/unit/ssl/base_spec.rb +14 -15
- data/spec/unit/ssl/certificate_authority/autosign_command_spec.rb +6 -7
- data/spec/unit/ssl/certificate_authority/interface_spec.rb +116 -113
- data/spec/unit/ssl/certificate_authority_spec.rb +258 -268
- data/spec/unit/ssl/certificate_factory_spec.rb +3 -5
- data/spec/unit/ssl/certificate_request_attributes_spec.rb +2 -3
- data/spec/unit/ssl/certificate_request_spec.rb +66 -67
- data/spec/unit/ssl/certificate_revocation_list_spec.rb +3 -4
- data/spec/unit/ssl/certificate_spec.rb +23 -25
- data/spec/unit/ssl/configuration_spec.rb +1 -4
- data/spec/unit/ssl/digest_spec.rb +0 -1
- data/spec/unit/ssl/host_spec.rb +217 -188
- data/spec/unit/ssl/inventory_spec.rb +25 -21
- data/spec/unit/ssl/key_spec.rb +30 -31
- data/spec/unit/ssl/validator_spec.rb +40 -40
- data/spec/unit/task_spec.rb +6 -7
- data/spec/unit/transaction/additional_resource_generator_spec.rb +6 -5
- data/spec/unit/transaction/event_manager_spec.rb +88 -88
- data/spec/unit/transaction/event_spec.rb +16 -15
- data/spec/unit/transaction/persistence_spec.rb +16 -17
- data/spec/unit/transaction/report_spec.rb +11 -12
- data/spec/unit/transaction/resource_harness_spec.rb +28 -33
- data/spec/unit/transaction_spec.rb +98 -100
- data/spec/unit/type/augeas_spec.rb +11 -10
- data/spec/unit/type/component_spec.rb +0 -1
- data/spec/unit/type/computer_spec.rb +7 -10
- data/spec/unit/type/cron_spec.rb +3 -7
- data/spec/unit/type/exec_spec.rb +60 -56
- data/spec/unit/type/file/checksum_spec.rb +9 -10
- data/spec/unit/type/file/checksum_value_spec.rb +31 -32
- data/spec/unit/type/file/content_spec.rb +58 -61
- data/spec/unit/type/file/ctime_spec.rb +0 -1
- data/spec/unit/type/file/ensure_spec.rb +12 -13
- data/spec/unit/type/file/group_spec.rb +5 -7
- data/spec/unit/type/file/mode_spec.rb +4 -6
- data/spec/unit/type/file/mtime_spec.rb +0 -1
- data/spec/unit/type/file/owner_spec.rb +6 -8
- data/spec/unit/type/file/selinux_spec.rb +17 -19
- data/spec/unit/type/file/source_spec.rb +104 -101
- data/spec/unit/type/file/type_spec.rb +0 -1
- data/spec/unit/type/file_spec.rb +195 -185
- data/spec/unit/type/filebucket_spec.rb +4 -5
- data/spec/unit/type/group_spec.rb +6 -8
- data/spec/unit/type/host_spec.rb +2 -3
- data/spec/unit/type/interface_spec.rb +2 -3
- data/spec/unit/type/k5login_spec.rb +3 -4
- data/spec/unit/type/macauthorization_spec.rb +6 -8
- data/spec/unit/type/mailalias_spec.rb +2 -3
- data/spec/unit/type/maillist_spec.rb +6 -9
- data/spec/unit/type/mcx_spec.rb +4 -8
- data/spec/unit/type/mount_spec.rb +26 -38
- data/spec/unit/type/nagios_spec.rb +0 -1
- data/spec/unit/type/noop_metaparam_spec.rb +1 -2
- data/spec/unit/type/package/package_settings_spec.rb +44 -23
- data/spec/unit/type/package_spec.rb +53 -54
- data/spec/unit/type/resources_spec.rb +86 -88
- data/spec/unit/type/schedule_spec.rb +24 -26
- data/spec/unit/type/scheduled_task_spec.rb +1 -2
- data/spec/unit/type/selboolean_spec.rb +5 -6
- data/spec/unit/type/selmodule_spec.rb +0 -1
- data/spec/unit/type/service_spec.rb +47 -47
- data/spec/unit/type/ssh_authorized_key_spec.rb +5 -35
- data/spec/unit/type/sshkey_spec.rb +0 -2
- data/spec/unit/type/stage_spec.rb +0 -1
- data/spec/unit/type/tidy_spec.rb +61 -62
- data/spec/unit/type/user_spec.rb +41 -27
- data/spec/unit/type/vlan_spec.rb +2 -4
- data/spec/unit/type/whit_spec.rb +0 -1
- data/spec/unit/type/zfs_spec.rb +6 -7
- data/spec/unit/type/zone_spec.rb +14 -4
- data/spec/unit/type/zpool_spec.rb +4 -5
- data/spec/unit/type_spec.rb +54 -53
- data/spec/unit/util/at_fork_spec.rb +18 -19
- data/spec/unit/util/autoload_spec.rb +53 -54
- data/spec/unit/util/backups_spec.rb +34 -35
- data/spec/unit/util/character_encoding_spec.rb +8 -8
- data/spec/unit/util/checksums_spec.rb +38 -39
- data/spec/unit/util/colors_spec.rb +1 -2
- data/spec/unit/util/command_line_spec.rb +24 -25
- data/spec/unit/util/constant_inflector_spec.rb +0 -1
- data/spec/unit/util/diff_spec.rb +7 -8
- data/spec/unit/util/errors_spec.rb +0 -1
- data/spec/unit/util/execution_spec.rb +187 -162
- data/spec/unit/util/execution_stub_spec.rb +0 -1
- data/spec/unit/util/feature_spec.rb +13 -13
- data/spec/unit/util/filetype_spec.rb +49 -49
- data/spec/unit/util/http_proxy_spec.rb +12 -12
- data/spec/unit/util/inifile_spec.rb +26 -31
- data/spec/unit/util/json_lockfile_spec.rb +3 -5
- data/spec/unit/util/ldap/connection_spec.rb +26 -25
- data/spec/unit/util/ldap/generator_spec.rb +0 -1
- data/spec/unit/util/ldap/manager_spec.rb +102 -101
- data/spec/unit/util/lockfile_spec.rb +0 -1
- data/spec/unit/util/log/destinations_spec.rb +30 -33
- data/spec/unit/util/log_spec.rb +35 -36
- data/spec/unit/util/logging_spec.rb +58 -66
- data/spec/unit/util/metric_spec.rb +0 -1
- data/spec/unit/util/monkey_patches_spec.rb +7 -9
- data/spec/unit/util/multi_match_spec.rb +0 -1
- data/spec/unit/util/nagios_maker_spec.rb +35 -36
- data/spec/unit/util/network_device/cisco/device_spec.rb +59 -50
- data/spec/unit/util/network_device/cisco/facts_spec.rb +4 -5
- data/spec/unit/util/network_device/cisco/interface_spec.rb +29 -20
- data/spec/unit/util/network_device/config_spec.rb +0 -1
- data/spec/unit/util/network_device/ipcalc_spec.rb +0 -1
- data/spec/unit/util/network_device/transport/base_spec.rb +5 -6
- data/spec/unit/util/network_device/transport/ssh_spec.rb +94 -60
- data/spec/unit/util/network_device/transport/telnet_spec.rb +18 -14
- data/spec/unit/util/network_device_spec.rb +7 -9
- data/spec/unit/util/package_spec.rb +0 -1
- data/spec/unit/util/pidlock_spec.rb +13 -14
- data/spec/unit/util/plist_spec.rb +40 -33
- data/spec/unit/util/posix_spec.rb +54 -51
- data/spec/unit/util/rdoc_spec.rb +9 -10
- data/spec/unit/util/reference_spec.rb +0 -1
- data/spec/unit/util/resource_template_spec.rb +20 -20
- data/spec/unit/util/retry_action_spec.rb +7 -8
- data/spec/unit/util/rubygems_spec.rb +14 -14
- data/spec/unit/util/run_mode_spec.rb +3 -4
- data/spec/unit/util/selinux_spec.rb +79 -72
- data/spec/unit/util/splayer_spec.rb +8 -9
- data/spec/unit/util/ssl_spec.rb +0 -1
- data/spec/unit/util/storage_spec.rb +3 -4
- data/spec/unit/util/suidmanager_spec.rb +45 -54
- data/spec/unit/util/symbolic_file_mode_spec.rb +0 -1
- data/spec/unit/util/tag_set_spec.rb +0 -1
- data/spec/unit/util/tagging_spec.rb +0 -1
- data/spec/unit/util/terminal_spec.rb +9 -10
- data/spec/unit/util/user_attr_spec.rb +1 -2
- data/spec/unit/util/warnings_spec.rb +3 -4
- data/spec/unit/util/watcher/periodic_watcher_spec.rb +2 -2
- data/spec/unit/util/watcher_spec.rb +51 -21
- data/spec/unit/util/windows/access_control_entry_spec.rb +0 -1
- data/spec/unit/util/windows/access_control_list_spec.rb +0 -1
- data/spec/unit/util/windows/adsi_spec.rb +136 -138
- data/spec/unit/util/windows/api_types_spec.rb +0 -1
- data/spec/unit/util/windows/eventlog_spec.rb +9 -12
- data/spec/unit/util/windows/file_spec.rb +0 -1
- data/spec/unit/util/windows/root_certs_spec.rb +0 -1
- data/spec/unit/util/windows/security_descriptor_spec.rb +0 -2
- data/spec/unit/util/windows/service_spec.rb +66 -68
- data/spec/unit/util/windows/sid_spec.rb +11 -13
- data/spec/unit/util/windows/string_spec.rb +0 -1
- data/spec/unit/util_spec.rb +55 -59
- data/spec/unit/version_spec.rb +6 -6
- metadata +2 -2
| @@ -1,4 +1,3 @@ | |
| 1 | 
            -
            #! /usr/bin/env ruby
         | 
| 2 1 | 
             
            require 'spec_helper'
         | 
| 3 2 |  | 
| 4 3 | 
             
            require 'puppet/util/watcher'
         | 
| @@ -13,44 +12,75 @@ describe Puppet::Util::Watcher do | |
| 13 12 |  | 
| 14 13 | 
             
                let(:filename) { "fake" }
         | 
| 15 14 |  | 
| 16 | 
            -
                 | 
| 17 | 
            -
                   | 
| 18 | 
            -
                  ([initial] + results).each do |result|
         | 
| 19 | 
            -
                    expectation = if result.is_a? Class
         | 
| 20 | 
            -
                                    expectation.raises(result)
         | 
| 21 | 
            -
                                  else
         | 
| 22 | 
            -
                                    expectation.returns(result)
         | 
| 23 | 
            -
                                  end.then
         | 
| 24 | 
            -
                  end
         | 
| 15 | 
            +
                it "is initially unchanged" do
         | 
| 16 | 
            +
                  expect(Puppet::FileSystem).to receive(:stat).with(filename).and_return(ctime(20)).at_least(:once)
         | 
| 25 17 |  | 
| 26 18 | 
             
                  watcher = Puppet::Util::Watcher::Common.file_ctime_change_watcher(filename)
         | 
| 27 | 
            -
                  results.size.times { watcher = watcher.next_reading }
         | 
| 28 19 |  | 
| 29 | 
            -
                  watcher
         | 
| 30 | 
            -
                end
         | 
| 31 | 
            -
             | 
| 32 | 
            -
                it "is initially unchanged" do
         | 
| 33 | 
            -
                  expect(after_reading_the_sequence(ctime(20))).to_not be_changed
         | 
| 20 | 
            +
                  expect(watcher).to_not be_changed
         | 
| 34 21 | 
             
                end
         | 
| 35 22 |  | 
| 36 23 | 
             
                it "has not changed if a section of the file path continues to not exist" do
         | 
| 37 | 
            -
                  expect( | 
| 24 | 
            +
                  expect(Puppet::FileSystem).to receive(:stat).with(filename).and_raise(Errno::ENOTDIR).at_least(:once)
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                  watcher = Puppet::Util::Watcher::Common.file_ctime_change_watcher(filename)
         | 
| 27 | 
            +
                  watcher = watcher.next_reading
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                  expect(watcher).to_not be_changed
         | 
| 38 30 | 
             
                end
         | 
| 39 31 |  | 
| 40 32 | 
             
                it "has not changed if the file continues to not exist" do
         | 
| 41 | 
            -
                  expect( | 
| 33 | 
            +
                  expect(Puppet::FileSystem).to receive(:stat).with(filename).and_raise(Errno::ENOENT).at_least(:once)
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                  watcher = Puppet::Util::Watcher::Common.file_ctime_change_watcher(filename)
         | 
| 36 | 
            +
                  watcher = watcher.next_reading
         | 
| 37 | 
            +
             | 
| 38 | 
            +
                  expect(watcher).to_not be_changed
         | 
| 42 39 | 
             
                end
         | 
| 43 40 |  | 
| 44 41 | 
             
                it "has changed if the file is created" do
         | 
| 45 | 
            -
                   | 
| 42 | 
            +
                  times_stat_called = 0
         | 
| 43 | 
            +
                  expect(Puppet::FileSystem).to receive(:stat).with(filename) do
         | 
| 44 | 
            +
                    times_stat_called += 1
         | 
| 45 | 
            +
                    raise Errno::ENOENT if times_stat_called == 1
         | 
| 46 | 
            +
                    ctime(20)
         | 
| 47 | 
            +
                  end.at_least(:once)
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                  watcher = Puppet::Util::Watcher::Common.file_ctime_change_watcher(filename)
         | 
| 50 | 
            +
                  watcher = watcher.next_reading
         | 
| 51 | 
            +
             | 
| 52 | 
            +
                  expect(watcher).to be_changed
         | 
| 46 53 | 
             
                end
         | 
| 47 54 |  | 
| 48 55 | 
             
                it "is marked as changed if the file is deleted" do
         | 
| 49 | 
            -
                   | 
| 56 | 
            +
                  times_stat_called = 0
         | 
| 57 | 
            +
                  expect(Puppet::FileSystem).to receive(:stat).with(filename) do
         | 
| 58 | 
            +
                    times_stat_called += 1
         | 
| 59 | 
            +
                    raise Errno::ENOENT if times_stat_called > 1
         | 
| 60 | 
            +
                    ctime(20)
         | 
| 61 | 
            +
                  end.at_least(:once)
         | 
| 62 | 
            +
             | 
| 63 | 
            +
                  watcher = Puppet::Util::Watcher::Common.file_ctime_change_watcher(filename)
         | 
| 64 | 
            +
                  watcher = watcher.next_reading
         | 
| 65 | 
            +
             | 
| 66 | 
            +
                  expect(watcher).to be_changed
         | 
| 50 67 | 
             
                end
         | 
| 51 68 |  | 
| 52 69 | 
             
                it "is marked as changed if the file modified" do
         | 
| 53 | 
            -
                   | 
| 70 | 
            +
                  times_stat_called = 0
         | 
| 71 | 
            +
                  expect(Puppet::FileSystem).to receive(:stat).with(filename) do
         | 
| 72 | 
            +
                    times_stat_called += 1
         | 
| 73 | 
            +
                    if times_stat_called == 1
         | 
| 74 | 
            +
                      ctime(20)
         | 
| 75 | 
            +
                    else
         | 
| 76 | 
            +
                      ctime(21)
         | 
| 77 | 
            +
                    end
         | 
| 78 | 
            +
                  end.at_least(:once)
         | 
| 79 | 
            +
             | 
| 80 | 
            +
                  watcher = Puppet::Util::Watcher::Common.file_ctime_change_watcher(filename)
         | 
| 81 | 
            +
                  watcher = watcher.next_reading
         | 
| 82 | 
            +
             | 
| 83 | 
            +
                  expect(watcher).to be_changed
         | 
| 54 84 | 
             
                end
         | 
| 55 85 | 
             
              end
         | 
| 56 86 | 
             
            end
         | 
| @@ -1,11 +1,9 @@ | |
| 1 | 
            -
            #!/usr/bin/env ruby
         | 
| 2 | 
            -
             | 
| 3 1 | 
             
            require 'spec_helper'
         | 
| 4 2 |  | 
| 5 3 | 
             
            require 'puppet/util/windows'
         | 
| 6 4 |  | 
| 7 5 | 
             
            describe Puppet::Util::Windows::ADSI, :if => Puppet.features.microsoft_windows? do
         | 
| 8 | 
            -
              let(:connection) {  | 
| 6 | 
            +
              let(:connection) { double('connection') }
         | 
| 9 7 | 
             
              let(:builtin_localized) { Puppet::Util::Windows::SID.sid_to_name('S-1-5-32') }
         | 
| 10 8 | 
             
              # SYSTEM is special as English can retrieve it via Windows API
         | 
| 11 9 | 
             
              # but will return localized names
         | 
| @@ -13,7 +11,7 @@ describe Puppet::Util::Windows::ADSI, :if => Puppet.features.microsoft_windows? | |
| 13 11 |  | 
| 14 12 | 
             
              before(:each) do
         | 
| 15 13 | 
             
                Puppet::Util::Windows::ADSI.instance_variable_set(:@computer_name, 'testcomputername')
         | 
| 16 | 
            -
                Puppet::Util::Windows::ADSI. | 
| 14 | 
            +
                allow(Puppet::Util::Windows::ADSI).to receive(:connect).and_return(connection)
         | 
| 17 15 | 
             
              end
         | 
| 18 16 |  | 
| 19 17 | 
             
              after(:each) do
         | 
| @@ -94,10 +92,10 @@ describe Puppet::Util::Windows::ADSI, :if => Puppet.features.microsoft_windows? | |
| 94 92 | 
             
                end
         | 
| 95 93 |  | 
| 96 94 | 
             
                it "should be able to create a user" do
         | 
| 97 | 
            -
                  adsi_user =  | 
| 95 | 
            +
                  adsi_user = double('adsi')
         | 
| 98 96 |  | 
| 99 | 
            -
                  connection. | 
| 100 | 
            -
                  Puppet::Util::Windows::ADSI::Group. | 
| 97 | 
            +
                  expect(connection).to receive(:Create).with('user', username).and_return(adsi_user)
         | 
| 98 | 
            +
                  expect(Puppet::Util::Windows::ADSI::Group).to receive(:exists?).with(username).and_return(false)
         | 
| 101 99 |  | 
| 102 100 | 
             
                  user = Puppet::Util::Windows::ADSI::User.create(username)
         | 
| 103 101 |  | 
| @@ -106,56 +104,55 @@ describe Puppet::Util::Windows::ADSI, :if => Puppet.features.microsoft_windows? | |
| 106 104 | 
             
                end
         | 
| 107 105 |  | 
| 108 106 | 
             
                it "should be able to check the existence of a user" do
         | 
| 109 | 
            -
                  Puppet::Util::Windows::SID. | 
| 110 | 
            -
                  Puppet::Util::Windows::ADSI. | 
| 111 | 
            -
                  connection. | 
| 107 | 
            +
                  expect(Puppet::Util::Windows::SID).to receive(:name_to_principal).with(username).and_return(nil)
         | 
| 108 | 
            +
                  expect(Puppet::Util::Windows::ADSI).to receive(:connect).with("WinNT://./#{username},user").and_return(connection)
         | 
| 109 | 
            +
                  expect(connection).to receive(:Class).and_return('User')
         | 
| 112 110 | 
             
                  expect(Puppet::Util::Windows::ADSI::User.exists?(username)).to be_truthy
         | 
| 113 111 | 
             
                end
         | 
| 114 112 |  | 
| 115 113 | 
             
                it "should be able to check the existence of a domain user" do
         | 
| 116 | 
            -
                  Puppet::Util::Windows::SID. | 
| 117 | 
            -
                  Puppet::Util::Windows::ADSI. | 
| 118 | 
            -
                  connection. | 
| 114 | 
            +
                  expect(Puppet::Util::Windows::SID).to receive(:name_to_principal).with("#{domain}\\#{username}").and_return(nil)
         | 
| 115 | 
            +
                  expect(Puppet::Util::Windows::ADSI).to receive(:connect).with("WinNT://#{domain}/#{username},user").and_return(connection)
         | 
| 116 | 
            +
                  expect(connection).to receive(:Class).and_return('User')
         | 
| 119 117 | 
             
                  expect(Puppet::Util::Windows::ADSI::User.exists?(domain_username)).to be_truthy
         | 
| 120 118 | 
             
                end
         | 
| 121 119 |  | 
| 122 120 | 
             
                it "should be able to confirm the existence of a user with a well-known SID" do
         | 
| 123 121 | 
             
                  system_user = Puppet::Util::Windows::SID::LocalSystem
         | 
| 124 122 | 
             
                  # ensure that the underlying OS is queried here
         | 
| 125 | 
            -
                  Puppet::Util::Windows::ADSI. | 
| 123 | 
            +
                  allow(Puppet::Util::Windows::ADSI).to receive(:connect).and_call_original()
         | 
| 126 124 | 
             
                  expect(Puppet::Util::Windows::ADSI::User.exists?(system_user)).to be_truthy
         | 
| 127 125 | 
             
                end
         | 
| 128 126 |  | 
| 129 127 | 
             
                it "should return false with a well-known Group SID" do
         | 
| 130 128 | 
             
                  group = Puppet::Util::Windows::SID::BuiltinAdministrators
         | 
| 131 129 | 
             
                  # ensure that the underlying OS is queried here
         | 
| 132 | 
            -
                  Puppet::Util::Windows::ADSI. | 
| 130 | 
            +
                  allow(Puppet::Util::Windows::ADSI).to receive(:connect).and_call_original()
         | 
| 133 131 | 
             
                  expect(Puppet::Util::Windows::ADSI::User.exists?(group)).to be_falsey
         | 
| 134 132 | 
             
                end
         | 
| 135 133 |  | 
| 136 134 | 
             
                it "should return nil with an unknown SID" do
         | 
| 137 | 
            -
             | 
| 138 135 | 
             
                  bogus_sid = 'S-1-2-3-4'
         | 
| 139 136 | 
             
                  # ensure that the underlying OS is queried here
         | 
| 140 | 
            -
                  Puppet::Util::Windows::ADSI. | 
| 137 | 
            +
                  allow(Puppet::Util::Windows::ADSI).to receive(:connect).and_call_original()
         | 
| 141 138 | 
             
                  expect(Puppet::Util::Windows::ADSI::User.exists?(bogus_sid)).to be_falsey
         | 
| 142 139 | 
             
                end
         | 
| 143 140 |  | 
| 144 141 | 
             
                it "should be able to delete a user" do
         | 
| 145 | 
            -
                  connection. | 
| 142 | 
            +
                  expect(connection).to receive(:Delete).with('user', username)
         | 
| 146 143 |  | 
| 147 144 | 
             
                  Puppet::Util::Windows::ADSI::User.delete(username)
         | 
| 148 145 | 
             
                end
         | 
| 149 146 |  | 
| 150 147 | 
             
                it "should return an enumeration of IADsUser wrapped objects" do
         | 
| 151 148 | 
             
                  name = 'Administrator'
         | 
| 152 | 
            -
                  wmi_users = [ | 
| 153 | 
            -
                  Puppet::Util::Windows::ADSI. | 
| 149 | 
            +
                  wmi_users = [double('WMI', :name => name)]
         | 
| 150 | 
            +
                  expect(Puppet::Util::Windows::ADSI).to receive(:execquery).with('select name from win32_useraccount where localaccount = "TRUE"').and_return(wmi_users)
         | 
| 154 151 |  | 
| 155 | 
            -
                  native_object =  | 
| 152 | 
            +
                  native_object = double('IADsUser')
         | 
| 156 153 | 
             
                  homedir = "C:\\Users\\#{name}"
         | 
| 157 | 
            -
                  native_object. | 
| 158 | 
            -
                  Puppet::Util::Windows::ADSI. | 
| 154 | 
            +
                  expect(native_object).to receive(:Get).with('HomeDirectory').and_return(homedir)
         | 
| 155 | 
            +
                  expect(Puppet::Util::Windows::ADSI).to receive(:connect).with("WinNT://./#{name},user").and_return(native_object)
         | 
| 159 156 |  | 
| 160 157 | 
             
                  users = Puppet::Util::Windows::ADSI::User.to_a
         | 
| 161 158 | 
             
                  expect(users.length).to eq(1)
         | 
| @@ -164,83 +161,86 @@ describe Puppet::Util::Windows::ADSI, :if => Puppet.features.microsoft_windows? | |
| 164 161 | 
             
                end
         | 
| 165 162 |  | 
| 166 163 | 
             
                describe "an instance" do
         | 
| 167 | 
            -
                  let(:adsi_user) {  | 
| 168 | 
            -
                  let(:sid)       {  | 
| 164 | 
            +
                  let(:adsi_user) { double('user', :objectSID => []) }
         | 
| 165 | 
            +
                  let(:sid)       { double(:account => username, :domain => 'testcomputername') }
         | 
| 169 166 | 
             
                  let(:user)      { Puppet::Util::Windows::ADSI::User.new(username, adsi_user) }
         | 
| 170 167 |  | 
| 171 168 | 
             
                  it "should provide its groups as a list of names" do
         | 
| 172 169 | 
             
                    names = ["group1", "group2"]
         | 
| 173 170 |  | 
| 174 | 
            -
                    groups = names.map { |name|  | 
| 171 | 
            +
                    groups = names.map { |name| double('group', :Name => name) }
         | 
| 175 172 |  | 
| 176 | 
            -
                    adsi_user. | 
| 173 | 
            +
                    expect(adsi_user).to receive(:Groups).and_return(groups)
         | 
| 177 174 |  | 
| 178 175 | 
             
                    expect(user.groups).to match(names)
         | 
| 179 176 | 
             
                  end
         | 
| 180 177 |  | 
| 181 178 | 
             
                  it "should be able to test whether a given password is correct" do
         | 
| 182 | 
            -
                    Puppet::Util::Windows::ADSI::User. | 
| 183 | 
            -
                    Puppet::Util::Windows::ADSI::User. | 
| 179 | 
            +
                    expect(Puppet::Util::Windows::ADSI::User).to receive(:logon).with(username, 'pwdwrong').and_return(false)
         | 
| 180 | 
            +
                    expect(Puppet::Util::Windows::ADSI::User).to receive(:logon).with(username, 'pwdright').and_return(true)
         | 
| 184 181 |  | 
| 185 182 | 
             
                    expect(user.password_is?('pwdwrong')).to be_falsey
         | 
| 186 183 | 
             
                    expect(user.password_is?('pwdright')).to be_truthy
         | 
| 187 184 | 
             
                  end
         | 
| 188 185 |  | 
| 189 186 | 
             
                  it "should be able to set a password" do
         | 
| 190 | 
            -
                    adsi_user. | 
| 191 | 
            -
                    adsi_user. | 
| 187 | 
            +
                    expect(adsi_user).to receive(:SetPassword).with('pwd')
         | 
| 188 | 
            +
                    expect(adsi_user).to receive(:SetInfo).at_least(:once)
         | 
| 192 189 |  | 
| 193 190 | 
             
                    flagname = "UserFlags"
         | 
| 194 191 | 
             
                    fADS_UF_DONT_EXPIRE_PASSWD = 0x10000
         | 
| 195 192 |  | 
| 196 | 
            -
                    adsi_user. | 
| 197 | 
            -
                    adsi_user. | 
| 193 | 
            +
                    expect(adsi_user).to receive(:Get).with(flagname).and_return(0)
         | 
| 194 | 
            +
                    expect(adsi_user).to receive(:Put).with(flagname, fADS_UF_DONT_EXPIRE_PASSWD)
         | 
| 198 195 |  | 
| 199 196 | 
             
                    user.password = 'pwd'
         | 
| 200 197 | 
             
                  end
         | 
| 201 198 |  | 
| 202 199 | 
             
                   it "should be able manage a user without a password" do
         | 
| 203 | 
            -
                    adsi_user. | 
| 204 | 
            -
                    adsi_user. | 
| 200 | 
            +
                    expect(adsi_user).not_to receive(:SetPassword).with('pwd')
         | 
| 201 | 
            +
                    expect(adsi_user).to receive(:SetInfo).at_least(:once)
         | 
| 205 202 |  | 
| 206 203 | 
             
                    flagname = "UserFlags"
         | 
| 207 204 | 
             
                    fADS_UF_DONT_EXPIRE_PASSWD = 0x10000
         | 
| 208 205 |  | 
| 209 | 
            -
                    adsi_user. | 
| 210 | 
            -
                    adsi_user. | 
| 206 | 
            +
                    expect(adsi_user).to receive(:Get).with(flagname).and_return(0)
         | 
| 207 | 
            +
                    expect(adsi_user).to receive(:Put).with(flagname, fADS_UF_DONT_EXPIRE_PASSWD)
         | 
| 211 208 |  | 
| 212 209 | 
             
                    user.password = nil
         | 
| 213 210 | 
             
                  end
         | 
| 214 211 |  | 
| 215 212 | 
             
                  it "should generate the correct URI" do
         | 
| 216 | 
            -
                    Puppet::Util::Windows::SID. | 
| 213 | 
            +
                    allow(Puppet::Util::Windows::SID).to receive(:octet_string_to_principal).and_return(sid)
         | 
| 217 214 | 
             
                    expect(user.uri).to eq("WinNT://testcomputername/#{username},user")
         | 
| 218 215 | 
             
                  end
         | 
| 219 216 |  | 
| 220 217 | 
             
                  describe "when given a set of groups to which to add the user" do
         | 
| 221 218 | 
             
                    let(:existing_groups) { ['group2','group3'] }
         | 
| 222 | 
            -
                    let(:group_sids) { existing_groups.each_with_index.map{|n,i|  | 
| 219 | 
            +
                    let(:group_sids) { existing_groups.each_with_index.map{|n,i| double(:Name => n, :objectSID => double(:sid => i))} }
         | 
| 223 220 |  | 
| 224 221 | 
             
                    let(:groups_to_set) { 'group1,group2' }
         | 
| 225 | 
            -
                    let(:desired_sids) { groups_to_set.split(',').each_with_index.map{|n,i|  | 
| 222 | 
            +
                    let(:desired_sids) { groups_to_set.split(',').each_with_index.map{|n,i| double(:Name => n, :objectSID => double(:sid => i-1))} }
         | 
| 226 223 |  | 
| 227 224 | 
             
                    before(:each) do
         | 
| 228 | 
            -
                      user. | 
| 225 | 
            +
                      expect(user).to receive(:group_sids).and_return(group_sids.map {|s| s.objectSID })
         | 
| 229 226 | 
             
                    end
         | 
| 230 227 |  | 
| 231 228 | 
             
                    describe "if membership is specified as inclusive" do
         | 
| 232 229 | 
             
                      it "should add the user to those groups, and remove it from groups not in the list" do
         | 
| 233 | 
            -
                        Puppet::Util::Windows::ADSI::User. | 
| 234 | 
            -
                        user. | 
| 235 | 
            -
                        user. | 
| 230 | 
            +
                        expect(Puppet::Util::Windows::ADSI::User).to receive(:name_sid_hash).and_return(Hash[ desired_sids.map { |s| [s.objectSID.sid, s.objectSID] }])
         | 
| 231 | 
            +
                        expect(user).to receive(:add_group_sids) { |value| expect(value.sid).to eq(-1) }
         | 
| 232 | 
            +
                        expect(user).to receive(:remove_group_sids) { |value| expect(value.sid).to eq(1) }
         | 
| 236 233 |  | 
| 237 234 | 
             
                        user.set_groups(groups_to_set, false)
         | 
| 238 235 | 
             
                      end
         | 
| 239 236 |  | 
| 240 237 | 
             
                      it "should remove all users from a group if desired is empty" do
         | 
| 241 | 
            -
                        Puppet::Util::Windows::ADSI::User. | 
| 242 | 
            -
                        user. | 
| 243 | 
            -
                        user. | 
| 238 | 
            +
                        expect(Puppet::Util::Windows::ADSI::User).to receive(:name_sid_hash).and_return({})
         | 
| 239 | 
            +
                        expect(user).not_to receive(:add_group_sids)
         | 
| 240 | 
            +
                        expect(user).to receive(:remove_group_sids) do |user1, user2|
         | 
| 241 | 
            +
                          expect(user1.sid).to eq(0)
         | 
| 242 | 
            +
                          expect(user2.sid).to eq(1)
         | 
| 243 | 
            +
                        end
         | 
| 244 244 |  | 
| 245 245 | 
             
                        user.set_groups('', false)
         | 
| 246 246 | 
             
                      end
         | 
| @@ -248,17 +248,17 @@ describe Puppet::Util::Windows::ADSI, :if => Puppet.features.microsoft_windows? | |
| 248 248 |  | 
| 249 249 | 
             
                    describe "if membership is specified as minimum" do
         | 
| 250 250 | 
             
                      it "should add the user to the specified groups without affecting its other memberships" do
         | 
| 251 | 
            -
                        Puppet::Util::Windows::ADSI::User. | 
| 252 | 
            -
                        user. | 
| 253 | 
            -
                        user. | 
| 251 | 
            +
                        expect(Puppet::Util::Windows::ADSI::User).to receive(:name_sid_hash).and_return(Hash[ desired_sids.map { |s| [s.objectSID.sid, s.objectSID] }])
         | 
| 252 | 
            +
                        expect(user).to receive(:add_group_sids) { |value| expect(value.sid).to eq(-1) }
         | 
| 253 | 
            +
                        expect(user).not_to receive(:remove_group_sids)
         | 
| 254 254 |  | 
| 255 255 | 
             
                        user.set_groups(groups_to_set, true)
         | 
| 256 256 | 
             
                      end
         | 
| 257 257 |  | 
| 258 258 | 
             
                      it "should do nothing if desired is empty" do
         | 
| 259 | 
            -
                        Puppet::Util::Windows::ADSI::User. | 
| 260 | 
            -
                        user. | 
| 261 | 
            -
                        user. | 
| 259 | 
            +
                        expect(Puppet::Util::Windows::ADSI::User).to receive(:name_sid_hash).and_return({})
         | 
| 260 | 
            +
                        expect(user).not_to receive(:remove_group_sids)
         | 
| 261 | 
            +
                        expect(user).not_to receive(:add_group_sids)
         | 
| 262 262 |  | 
| 263 263 | 
             
                        user.set_groups('', true)
         | 
| 264 264 | 
             
                      end
         | 
| @@ -282,7 +282,7 @@ describe Puppet::Util::Windows::ADSI, :if => Puppet.features.microsoft_windows? | |
| 282 282 | 
             
                        flags | ads_userflags(flag)
         | 
| 283 283 | 
             
                      end
         | 
| 284 284 |  | 
| 285 | 
            -
                      user. | 
| 285 | 
            +
                      allow(user).to receive(:[]).with('UserFlags').and_return(userflags)
         | 
| 286 286 | 
             
                    end
         | 
| 287 287 |  | 
| 288 288 | 
             
                    describe '#userflag_set?' do
         | 
| @@ -316,8 +316,8 @@ describe Puppet::Util::Windows::ADSI, :if => Puppet.features.microsoft_windows? | |
| 316 316 | 
             
                      end
         | 
| 317 317 |  | 
| 318 318 | 
             
                      it 'noops if no userflags are passed-in' do
         | 
| 319 | 
            -
                        user. | 
| 320 | 
            -
                        user. | 
| 319 | 
            +
                        expect(user).not_to receive(:[]=)
         | 
| 320 | 
            +
                        expect(user).not_to receive(:commit)
         | 
| 321 321 |  | 
| 322 322 | 
             
                        user.send(method)
         | 
| 323 323 | 
             
                      end
         | 
| @@ -335,7 +335,7 @@ describe Puppet::Util::Windows::ADSI, :if => Puppet.features.microsoft_windows? | |
| 335 335 | 
             
                        userflags = user['UserFlags']
         | 
| 336 336 | 
             
                        expected_userflags = userflags | ads_userflags(input_flags[0]) | ads_userflags(input_flags[1])
         | 
| 337 337 |  | 
| 338 | 
            -
                        user. | 
| 338 | 
            +
                        expect(user).to receive(:[]=).with('UserFlags', expected_userflags)
         | 
| 339 339 |  | 
| 340 340 | 
             
                        user.set_userflags(*input_flags)
         | 
| 341 341 | 
             
                      end
         | 
| @@ -353,7 +353,7 @@ describe Puppet::Util::Windows::ADSI, :if => Puppet.features.microsoft_windows? | |
| 353 353 | 
             
                        # ADS_UF_HOMEDIR_REQUIRED and ADS_UF_LOCKOUT should be the only flags set.
         | 
| 354 354 | 
             
                        expected_userflags = 0 | ads_userflags(:ADS_UF_HOMEDIR_REQUIRED) | ads_userflags(:ADS_UF_LOCKOUT)
         | 
| 355 355 |  | 
| 356 | 
            -
                        user. | 
| 356 | 
            +
                        expect(user).to receive(:[]=).with('UserFlags', expected_userflags)
         | 
| 357 357 |  | 
| 358 358 | 
             
                        user.unset_userflags(*input_flags)
         | 
| 359 359 | 
             
                      end
         | 
| @@ -366,16 +366,16 @@ describe Puppet::Util::Windows::ADSI, :if => Puppet.features.microsoft_windows? | |
| 366 366 | 
             
                let(:groupname)  { 'testgroup' }
         | 
| 367 367 |  | 
| 368 368 | 
             
                describe "an instance" do
         | 
| 369 | 
            -
                  let(:adsi_group) {  | 
| 369 | 
            +
                  let(:adsi_group) { double('group') }
         | 
| 370 370 | 
             
                  let(:group)      { Puppet::Util::Windows::ADSI::Group.new(groupname, adsi_group) }
         | 
| 371 | 
            -
                  let(:someone_sid){  | 
| 371 | 
            +
                  let(:someone_sid){ double(:account => 'someone', :domain => 'testcomputername')}
         | 
| 372 372 |  | 
| 373 373 | 
             
                  describe "should be able to use SID objects" do
         | 
| 374 374 | 
             
                    let(:system)     { Puppet::Util::Windows::SID.name_to_principal('SYSTEM') }
         | 
| 375 375 | 
             
                    let(:invalid)    { Puppet::Util::Windows::SID.name_to_principal('foobar') }
         | 
| 376 376 |  | 
| 377 377 | 
             
                    it "to add a member" do
         | 
| 378 | 
            -
                      adsi_group. | 
| 378 | 
            +
                      expect(adsi_group).to receive(:Add).with("WinNT://S-1-5-18")
         | 
| 379 379 |  | 
| 380 380 | 
             
                      group.add_member_sids(system)
         | 
| 381 381 | 
             
                    end
         | 
| @@ -385,7 +385,7 @@ describe Puppet::Util::Windows::ADSI, :if => Puppet.features.microsoft_windows? | |
| 385 385 | 
             
                    end
         | 
| 386 386 |  | 
| 387 387 | 
             
                    it "to remove a member" do
         | 
| 388 | 
            -
                      adsi_group. | 
| 388 | 
            +
                      expect(adsi_group).to receive(:Remove).with("WinNT://S-1-5-18")
         | 
| 389 389 |  | 
| 390 390 | 
             
                      group.remove_member_sids(system)
         | 
| 391 391 | 
             
                    end
         | 
| @@ -398,12 +398,12 @@ describe Puppet::Util::Windows::ADSI, :if => Puppet.features.microsoft_windows? | |
| 398 398 | 
             
                  it "should provide its groups as a list of names" do
         | 
| 399 399 | 
             
                    names = ['user1', 'user2']
         | 
| 400 400 |  | 
| 401 | 
            -
                    users = names.map { |name|  | 
| 401 | 
            +
                    users = names.map { |name| double('user', :Name => name, :objectSID => name, :ole_respond_to? => true) }
         | 
| 402 402 |  | 
| 403 | 
            -
                    adsi_group. | 
| 403 | 
            +
                    expect(adsi_group).to receive(:Members).and_return(users)
         | 
| 404 404 |  | 
| 405 | 
            -
                    Puppet::Util::Windows::SID. | 
| 406 | 
            -
                    Puppet::Util::Windows::SID. | 
| 405 | 
            +
                    expect(Puppet::Util::Windows::SID).to receive(:octet_string_to_principal).with('user1').and_return(double(:domain_account => 'HOSTNAME\user1'))
         | 
| 406 | 
            +
                    expect(Puppet::Util::Windows::SID).to receive(:octet_string_to_principal).with('user2').and_return(double(:domain_account => 'HOSTNAME\user2'))
         | 
| 407 407 |  | 
| 408 408 | 
             
                    expect(group.members.map(&:domain_account)).to match(['HOSTNAME\user1', 'HOSTNAME\user2'])
         | 
| 409 409 | 
             
                  end
         | 
| @@ -412,26 +412,26 @@ describe Puppet::Util::Windows::ADSI, :if => Puppet.features.microsoft_windows? | |
| 412 412 | 
             
                    it "should set the members of a group to only desired_members when inclusive" do
         | 
| 413 413 | 
             
                      names = ['DOMAIN\user1', 'user2']
         | 
| 414 414 | 
             
                      sids = [
         | 
| 415 | 
            -
             | 
| 416 | 
            -
             | 
| 417 | 
            -
             | 
| 415 | 
            +
                        double(:account => 'user1', :domain => 'DOMAIN', :sid => 1),
         | 
| 416 | 
            +
                        double(:account => 'user2', :domain => 'testcomputername', :sid => 2),
         | 
| 417 | 
            +
                        double(:account => 'user3', :domain => 'DOMAIN2', :sid => 3),
         | 
| 418 418 | 
             
                      ]
         | 
| 419 419 |  | 
| 420 420 | 
             
                      # use stubbed objectSid on member to return stubbed SID
         | 
| 421 | 
            -
                      Puppet::Util::Windows::SID. | 
| 422 | 
            -
                      Puppet::Util::Windows::SID. | 
| 421 | 
            +
                      expect(Puppet::Util::Windows::SID).to receive(:octet_string_to_principal).with([0]).and_return(sids[0])
         | 
| 422 | 
            +
                      expect(Puppet::Util::Windows::SID).to receive(:octet_string_to_principal).with([1]).and_return(sids[1])
         | 
| 423 423 |  | 
| 424 | 
            -
                      Puppet::Util::Windows::SID. | 
| 425 | 
            -
                      Puppet::Util::Windows::SID. | 
| 424 | 
            +
                      expect(Puppet::Util::Windows::SID).to receive(:name_to_principal).with('user2').and_return(sids[1])
         | 
| 425 | 
            +
                      expect(Puppet::Util::Windows::SID).to receive(:name_to_principal).with('DOMAIN2\user3').and_return(sids[2])
         | 
| 426 426 |  | 
| 427 | 
            -
                      Puppet::Util::Windows::ADSI. | 
| 428 | 
            -
                      Puppet::Util::Windows::ADSI. | 
| 427 | 
            +
                      expect(Puppet::Util::Windows::ADSI).to receive(:sid_uri).with(sids[0]).and_return("WinNT://DOMAIN/user1,user")
         | 
| 428 | 
            +
                      expect(Puppet::Util::Windows::ADSI).to receive(:sid_uri).with(sids[2]).and_return("WinNT://DOMAIN2/user3,user")
         | 
| 429 429 |  | 
| 430 | 
            -
                      members = names.each_with_index.map{|n,i|  | 
| 431 | 
            -
                      adsi_group. | 
| 430 | 
            +
                      members = names.each_with_index.map{|n,i| double(:Name => n, :objectSID => [i], :ole_respond_to? => true)}
         | 
| 431 | 
            +
                      expect(adsi_group).to receive(:Members).and_return(members)
         | 
| 432 432 |  | 
| 433 | 
            -
                      adsi_group. | 
| 434 | 
            -
                      adsi_group. | 
| 433 | 
            +
                      expect(adsi_group).to receive(:Remove).with('WinNT://DOMAIN/user1,user')
         | 
| 434 | 
            +
                      expect(adsi_group).to receive(:Add).with('WinNT://DOMAIN2/user3,user')
         | 
| 435 435 |  | 
| 436 436 | 
             
                      group.set_members(['user2', 'DOMAIN2\user3'])
         | 
| 437 437 | 
             
                    end
         | 
| @@ -439,35 +439,35 @@ describe Puppet::Util::Windows::ADSI, :if => Puppet.features.microsoft_windows? | |
| 439 439 | 
             
                    it "should add the desired_members to an existing group when not inclusive" do
         | 
| 440 440 | 
             
                      names = ['DOMAIN\user1', 'user2']
         | 
| 441 441 | 
             
                      sids = [
         | 
| 442 | 
            -
             | 
| 443 | 
            -
             | 
| 444 | 
            -
             | 
| 442 | 
            +
                        double(:account => 'user1', :domain => 'DOMAIN', :sid => 1),
         | 
| 443 | 
            +
                        double(:account => 'user2', :domain => 'testcomputername', :sid => 2),
         | 
| 444 | 
            +
                        double(:account => 'user3', :domain => 'DOMAIN2', :sid => 3),
         | 
| 445 445 | 
             
                      ]
         | 
| 446 446 |  | 
| 447 447 | 
             
                      # use stubbed objectSid on member to return stubbed SID
         | 
| 448 | 
            -
                      Puppet::Util::Windows::SID. | 
| 449 | 
            -
                      Puppet::Util::Windows::SID. | 
| 448 | 
            +
                      expect(Puppet::Util::Windows::SID).to receive(:octet_string_to_principal).with([0]).and_return(sids[0])
         | 
| 449 | 
            +
                      expect(Puppet::Util::Windows::SID).to receive(:octet_string_to_principal).with([1]).and_return(sids[1])
         | 
| 450 450 |  | 
| 451 | 
            -
                      Puppet::Util::Windows::SID. | 
| 452 | 
            -
                      Puppet::Util::Windows::SID. | 
| 451 | 
            +
                      expect(Puppet::Util::Windows::SID).to receive(:name_to_principal).with('user2').and_return(sids[1])
         | 
| 452 | 
            +
                      expect(Puppet::Util::Windows::SID).to receive(:name_to_principal).with('DOMAIN2\user3').and_return(sids[2])
         | 
| 453 453 |  | 
| 454 | 
            -
                      Puppet::Util::Windows::ADSI. | 
| 454 | 
            +
                      expect(Puppet::Util::Windows::ADSI).to receive(:sid_uri).with(sids[2]).and_return("WinNT://DOMAIN2/user3,user")
         | 
| 455 455 |  | 
| 456 | 
            -
                      members = names.each_with_index.map{|n,i|  | 
| 457 | 
            -
                      adsi_group. | 
| 456 | 
            +
                      members = names.each_with_index.map {|n,i| double(:Name => n, :objectSID => [i], :ole_respond_to? => true)}
         | 
| 457 | 
            +
                      expect(adsi_group).to receive(:Members).and_return(members)
         | 
| 458 458 |  | 
| 459 | 
            -
                      adsi_group. | 
| 459 | 
            +
                      expect(adsi_group).not_to receive(:Remove).with('WinNT://DOMAIN/user1,user')
         | 
| 460 460 |  | 
| 461 | 
            -
                      adsi_group. | 
| 461 | 
            +
                      expect(adsi_group).to receive(:Add).with('WinNT://DOMAIN2/user3,user')
         | 
| 462 462 |  | 
| 463 463 | 
             
                      group.set_members(['user2', 'DOMAIN2\user3'],false)
         | 
| 464 464 | 
             
                    end
         | 
| 465 465 |  | 
| 466 466 | 
             
                    it "should return immediately when desired_members is nil" do
         | 
| 467 | 
            -
                      adsi_group. | 
| 467 | 
            +
                      expect(adsi_group).not_to receive(:Members)
         | 
| 468 468 |  | 
| 469 | 
            -
                      adsi_group. | 
| 470 | 
            -
                      adsi_group. | 
| 469 | 
            +
                      expect(adsi_group).not_to receive(:Remove)
         | 
| 470 | 
            +
                      expect(adsi_group).not_to receive(:Add)
         | 
| 471 471 |  | 
| 472 472 | 
             
                      group.set_members(nil)
         | 
| 473 473 | 
             
                    end
         | 
| @@ -475,22 +475,22 @@ describe Puppet::Util::Windows::ADSI, :if => Puppet.features.microsoft_windows? | |
| 475 475 | 
             
                    it "should remove all members when desired_members is empty and inclusive" do
         | 
| 476 476 | 
             
                      names = ['DOMAIN\user1', 'user2']
         | 
| 477 477 | 
             
                      sids = [
         | 
| 478 | 
            -
             | 
| 479 | 
            -
             | 
| 478 | 
            +
                        double(:account => 'user1', :domain => 'DOMAIN', :sid => 1 ),
         | 
| 479 | 
            +
                        double(:account => 'user2', :domain => 'testcomputername', :sid => 2 ),
         | 
| 480 480 | 
             
                      ]
         | 
| 481 481 |  | 
| 482 482 | 
             
                      # use stubbed objectSid on member to return stubbed SID
         | 
| 483 | 
            -
                      Puppet::Util::Windows::SID. | 
| 484 | 
            -
                      Puppet::Util::Windows::SID. | 
| 483 | 
            +
                      expect(Puppet::Util::Windows::SID).to receive(:octet_string_to_principal).with([0]).and_return(sids[0])
         | 
| 484 | 
            +
                      expect(Puppet::Util::Windows::SID).to receive(:octet_string_to_principal).with([1]).and_return(sids[1])
         | 
| 485 485 |  | 
| 486 | 
            -
                      Puppet::Util::Windows::ADSI. | 
| 487 | 
            -
                      Puppet::Util::Windows::ADSI. | 
| 486 | 
            +
                      expect(Puppet::Util::Windows::ADSI).to receive(:sid_uri).with(sids[0]).and_return("WinNT://DOMAIN/user1,user")
         | 
| 487 | 
            +
                      expect(Puppet::Util::Windows::ADSI).to receive(:sid_uri).with(sids[1]).and_return("WinNT://testcomputername/user2,user")
         | 
| 488 488 |  | 
| 489 | 
            -
                      members = names.each_with_index.map{|n,i|  | 
| 490 | 
            -
                      adsi_group. | 
| 489 | 
            +
                      members = names.each_with_index.map{|n,i| double(:Name => n, :objectSID => [i], :ole_respond_to? => true)}
         | 
| 490 | 
            +
                      expect(adsi_group).to receive(:Members).and_return(members)
         | 
| 491 491 |  | 
| 492 | 
            -
                      adsi_group. | 
| 493 | 
            -
                      adsi_group. | 
| 492 | 
            +
                      expect(adsi_group).to receive(:Remove).with('WinNT://DOMAIN/user1,user')
         | 
| 493 | 
            +
                      expect(adsi_group).to receive(:Remove).with('WinNT://testcomputername/user2,user')
         | 
| 494 494 |  | 
| 495 495 | 
             
                      group.set_members([])
         | 
| 496 496 | 
             
                    end
         | 
| @@ -498,35 +498,35 @@ describe Puppet::Util::Windows::ADSI, :if => Puppet.features.microsoft_windows? | |
| 498 498 | 
             
                    it "should do nothing when desired_members is empty and not inclusive" do
         | 
| 499 499 | 
             
                      names = ['DOMAIN\user1', 'user2']
         | 
| 500 500 | 
             
                      sids = [
         | 
| 501 | 
            -
             | 
| 502 | 
            -
             | 
| 501 | 
            +
                        double(:account => 'user1', :domain => 'DOMAIN', :sid => 1 ),
         | 
| 502 | 
            +
                        double(:account => 'user2', :domain => 'testcomputername', :sid => 2 ),
         | 
| 503 503 | 
             
                      ]
         | 
| 504 504 | 
             
                      # use stubbed objectSid on member to return stubbed SID
         | 
| 505 | 
            -
                      Puppet::Util::Windows::SID. | 
| 506 | 
            -
                      Puppet::Util::Windows::SID. | 
| 505 | 
            +
                      expect(Puppet::Util::Windows::SID).to receive(:octet_string_to_principal).with([0]).and_return(sids[0])
         | 
| 506 | 
            +
                      expect(Puppet::Util::Windows::SID).to receive(:octet_string_to_principal).with([1]).and_return(sids[1])
         | 
| 507 507 |  | 
| 508 | 
            -
                      members = names.each_with_index.map{|n,i|  | 
| 509 | 
            -
                      adsi_group. | 
| 508 | 
            +
                      members = names.each_with_index.map{|n,i| double(:Name => n, :objectSID => [i], :ole_respond_to? => true)}
         | 
| 509 | 
            +
                      expect(adsi_group).to receive(:Members).and_return(members)
         | 
| 510 510 |  | 
| 511 | 
            -
                      adsi_group. | 
| 512 | 
            -
                      adsi_group. | 
| 511 | 
            +
                      expect(adsi_group).not_to receive(:Remove)
         | 
| 512 | 
            +
                      expect(adsi_group).not_to receive(:Add)
         | 
| 513 513 |  | 
| 514 514 | 
             
                      group.set_members([],false)
         | 
| 515 515 | 
             
                    end
         | 
| 516 516 |  | 
| 517 517 | 
             
                    it "should raise an error when a username does not resolve to a SID" do
         | 
| 518 518 | 
             
                      expect {
         | 
| 519 | 
            -
                        adsi_group. | 
| 519 | 
            +
                        expect(adsi_group).to receive(:Members).and_return([])
         | 
| 520 520 | 
             
                        group.set_members(['foobar'])
         | 
| 521 521 | 
             
                      }.to raise_error(Puppet::Error, /Could not resolve name: foobar/)
         | 
| 522 522 | 
             
                    end
         | 
| 523 523 | 
             
                  end
         | 
| 524 524 |  | 
| 525 525 | 
             
                  it "should generate the correct URI" do
         | 
| 526 | 
            -
                    adsi_group. | 
| 527 | 
            -
                    Socket. | 
| 528 | 
            -
                    computer_sid =  | 
| 529 | 
            -
                    Puppet::Util::Windows::SID. | 
| 526 | 
            +
                    expect(adsi_group).to receive(:objectSID).and_return([0])
         | 
| 527 | 
            +
                    expect(Socket).to receive(:gethostname).and_return('TESTcomputerNAME')
         | 
| 528 | 
            +
                    computer_sid = double(:account => groupname,:domain => 'testcomputername')
         | 
| 529 | 
            +
                    expect(Puppet::Util::Windows::SID).to receive(:octet_string_to_principal).with([0]).and_return(computer_sid)
         | 
| 530 530 | 
             
                    expect(group.uri).to eq("WinNT://./#{groupname},group")
         | 
| 531 531 | 
             
                  end
         | 
| 532 532 | 
             
                end
         | 
| @@ -544,10 +544,10 @@ describe Puppet::Util::Windows::ADSI, :if => Puppet.features.microsoft_windows? | |
| 544 544 | 
             
                end
         | 
| 545 545 |  | 
| 546 546 | 
             
                it "should be able to create a group" do
         | 
| 547 | 
            -
                  adsi_group =  | 
| 547 | 
            +
                  adsi_group = double("adsi")
         | 
| 548 548 |  | 
| 549 | 
            -
                  connection. | 
| 550 | 
            -
                  Puppet::Util::Windows::ADSI::User. | 
| 549 | 
            +
                  expect(connection).to receive(:Create).with('group', groupname).and_return(adsi_group)
         | 
| 550 | 
            +
                  expect(Puppet::Util::Windows::ADSI::User).to receive(:exists?).with(groupname).and_return(false)
         | 
| 551 551 |  | 
| 552 552 | 
             
                  group = Puppet::Util::Windows::ADSI::Group.create(groupname)
         | 
| 553 553 |  | 
| @@ -556,51 +556,49 @@ describe Puppet::Util::Windows::ADSI, :if => Puppet.features.microsoft_windows? | |
| 556 556 | 
             
                end
         | 
| 557 557 |  | 
| 558 558 | 
             
                it "should be able to confirm the existence of a group" do
         | 
| 559 | 
            -
                  Puppet::Util::Windows::SID. | 
| 560 | 
            -
                  Puppet::Util::Windows::ADSI. | 
| 561 | 
            -
                  connection. | 
| 559 | 
            +
                  expect(Puppet::Util::Windows::SID).to receive(:name_to_principal).with(groupname).and_return(nil)
         | 
| 560 | 
            +
                  expect(Puppet::Util::Windows::ADSI).to receive(:connect).with("WinNT://./#{groupname},group").and_return(connection)
         | 
| 561 | 
            +
                  expect(connection).to receive(:Class).and_return('Group')
         | 
| 562 562 |  | 
| 563 563 | 
             
                  expect(Puppet::Util::Windows::ADSI::Group.exists?(groupname)).to be_truthy
         | 
| 564 564 | 
             
                end
         | 
| 565 565 |  | 
| 566 566 | 
             
                it "should be able to confirm the existence of a group with a well-known SID" do
         | 
| 567 | 
            -
             | 
| 568 567 | 
             
                  service_group = Puppet::Util::Windows::SID::Service
         | 
| 569 568 | 
             
                  # ensure that the underlying OS is queried here
         | 
| 570 | 
            -
                  Puppet::Util::Windows::ADSI. | 
| 569 | 
            +
                  allow(Puppet::Util::Windows::ADSI).to receive(:connect).and_call_original()
         | 
| 571 570 | 
             
                  expect(Puppet::Util::Windows::ADSI::Group.exists?(service_group)).to be_truthy
         | 
| 572 571 | 
             
                end
         | 
| 573 572 |  | 
| 574 573 | 
             
                it "will return true with a well-known User SID, as there is no way to resolve it with a WinNT:// style moniker" do
         | 
| 575 574 | 
             
                  user = Puppet::Util::Windows::SID::NtLocal
         | 
| 576 575 | 
             
                  # ensure that the underlying OS is queried here
         | 
| 577 | 
            -
                  Puppet::Util::Windows::ADSI. | 
| 576 | 
            +
                  allow(Puppet::Util::Windows::ADSI).to receive(:connect).and_call_original()
         | 
| 578 577 | 
             
                  expect(Puppet::Util::Windows::ADSI::Group.exists?(user)).to be_truthy
         | 
| 579 578 | 
             
                end
         | 
| 580 579 |  | 
| 581 580 | 
             
                it "should return nil with an unknown SID" do
         | 
| 582 | 
            -
             | 
| 583 581 | 
             
                  bogus_sid = 'S-1-2-3-4'
         | 
| 584 582 | 
             
                  # ensure that the underlying OS is queried here
         | 
| 585 | 
            -
                  Puppet::Util::Windows::ADSI. | 
| 583 | 
            +
                  allow(Puppet::Util::Windows::ADSI).to receive(:connect).and_call_original()
         | 
| 586 584 | 
             
                  expect(Puppet::Util::Windows::ADSI::Group.exists?(bogus_sid)).to be_falsey
         | 
| 587 585 | 
             
                end
         | 
| 588 586 |  | 
| 589 587 | 
             
                it "should be able to delete a group" do
         | 
| 590 | 
            -
                  connection. | 
| 588 | 
            +
                  expect(connection).to receive(:Delete).with('group', groupname)
         | 
| 591 589 |  | 
| 592 590 | 
             
                  Puppet::Util::Windows::ADSI::Group.delete(groupname)
         | 
| 593 591 | 
             
                end
         | 
| 594 592 |  | 
| 595 593 | 
             
                it "should return an enumeration of IADsGroup wrapped objects" do
         | 
| 596 594 | 
             
                  name = 'Administrators'
         | 
| 597 | 
            -
                  wmi_groups = [ | 
| 598 | 
            -
                  Puppet::Util::Windows::ADSI. | 
| 595 | 
            +
                  wmi_groups = [double('WMI', :name => name)]
         | 
| 596 | 
            +
                  expect(Puppet::Util::Windows::ADSI).to receive(:execquery).with('select name from win32_group where localaccount = "TRUE"').and_return(wmi_groups)
         | 
| 599 597 |  | 
| 600 | 
            -
                  native_object =  | 
| 601 | 
            -
                  Puppet::Util::Windows::SID. | 
| 602 | 
            -
                  native_object. | 
| 603 | 
            -
                  Puppet::Util::Windows::ADSI. | 
| 598 | 
            +
                  native_object = double('IADsGroup')
         | 
| 599 | 
            +
                  expect(Puppet::Util::Windows::SID).to receive(:octet_string_to_principal).with([]).and_return(double(:domain_account => '.\Administrator'))
         | 
| 600 | 
            +
                  expect(native_object).to receive(:Members).and_return([double(:Name => 'Administrator', :objectSID => [], :ole_respond_to? => true)])
         | 
| 601 | 
            +
                  expect(Puppet::Util::Windows::ADSI).to receive(:connect).with("WinNT://./#{name},group").and_return(native_object)
         | 
| 604 602 |  | 
| 605 603 | 
             
                  groups = Puppet::Util::Windows::ADSI::Group.to_a
         | 
| 606 604 | 
             
                  expect(groups.length).to eq(1)
         | 
| @@ -611,19 +609,19 @@ describe Puppet::Util::Windows::ADSI, :if => Puppet.features.microsoft_windows? | |
| 611 609 |  | 
| 612 610 | 
             
              describe Puppet::Util::Windows::ADSI::UserProfile do
         | 
| 613 611 | 
             
                it "should be able to delete a user profile" do
         | 
| 614 | 
            -
                  connection. | 
| 612 | 
            +
                  expect(connection).to receive(:Delete).with("Win32_UserProfile.SID='S-A-B-C'")
         | 
| 615 613 | 
             
                  Puppet::Util::Windows::ADSI::UserProfile.delete('S-A-B-C')
         | 
| 616 614 | 
             
                end
         | 
| 617 615 |  | 
| 618 616 | 
             
                it "should warn on 2003" do
         | 
| 619 | 
            -
                  connection. | 
| 617 | 
            +
                  expect(connection).to receive(:Delete).and_raise(WIN32OLERuntimeError,
         | 
| 620 618 | 
             
             "Delete (WIN32OLERuntimeError)
         | 
| 621 619 | 
             
                OLE error code:80041010 in SWbemServicesEx
         | 
| 622 620 | 
             
                  Invalid class
         | 
| 623 621 | 
             
                HRESULT error code:0x80020009
         | 
| 624 622 | 
             
                  Exception occurred.")
         | 
| 625 623 |  | 
| 626 | 
            -
                  Puppet. | 
| 624 | 
            +
                  expect(Puppet).to receive(:warning).with("Cannot delete user profile for 'S-A-B-C' prior to Vista SP1")
         | 
| 627 625 | 
             
                  Puppet::Util::Windows::ADSI::UserProfile.delete('S-A-B-C')
         | 
| 628 626 | 
             
                end
         | 
| 629 627 | 
             
              end
         |