summaryrefslogtreecommitdiff
path: root/features/cookbooks/lightweight_resources_and_providers.feature
blob: 24fc7c559069fa16a7c4fe417c3d5879ba52eed5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
@lwrp @cookbooks
Feature: Light-weight resources and providers

  @solo @lwrp_solo
  Scenario Outline: Chef solo handles light-weight resources and providers
    Given a local cookbook repository
     When I run chef-solo with the 'lwrp::<recipe>' recipe
     Then the run should exit '0'
      And 'stdout' should have '<message>'

    Examples:
      | recipe                                    | message                                                                          |
      | default_everything                        | Default everything                                                               |
      | non_default_provider                      | Non-default provider                                                             |
      | non_default_resource                      | Non-default resource                                                             |
      | overridden_resource_initialize            | Overridden initialize                                                            |
      | overridden_provider_load_current_resource | Overridden load_current_resource                                                 |
      | provider_is_a_string                      | Provider is a string                                                             |
      | provider_is_a_symbol                      | Provider is a symbol                                                             |
      | provider_is_a_class                       | Provider is a class                                                              |
      | provider_is_omitted                       | P=Chef::Provider::LwrpProviderIsOmitted, R=Chef::Resource::LwrpProviderIsOmitted |

  @solo @lwrp_solo
  Scenario: Chef solo properly handles providers that invoke resources in their action definitions
    Given a local cookbook repository
     When I run chef-solo with the 'lwrp::provider_invokes_resource' recipe
     Then the run should exit '0'
      And a file named 'lwrp_touch_file.txt' should exist

  @client @lwrp_api
  Scenario Outline: Chef-client handles light-weight resources and providers
    Given a validated node with an empty runlist
      And it includes the recipe 'lwrp::<recipe>'
     When I run the chef-client
     Then the run should exit '0'
      And 'stdout' should have '<message>'

    Examples:
      | recipe                                    | message                                                                          |
      | default_everything                        | Default everything                                                               |
      | non_default_provider                      | Non-default provider                                                             |
      | non_default_resource                      | Non-default resource                                                             |
      | overridden_resource_initialize            | Overridden initialize                                                            |
      | overridden_provider_load_current_resource | Overridden load_current_resource                                                 |
      | provider_is_a_string                      | Provider is a string                                                             |
      | provider_is_a_symbol                      | Provider is a symbol                                                             |
      | provider_is_a_class                       | Provider is a class                                                              |
      | provider_is_omitted                       | P=Chef::Provider::LwrpProviderIsOmitted, R=Chef::Resource::LwrpProviderIsOmitted |

  @client @lwrp_api
  Scenario: Chef-client properly handles providers that invoke resources in their action definitions
    Given a validated node
      And it includes the recipe 'lwrp::provider_invokes_resource'
     When I run the chef-client
     Then the run should exit '0'
      And a file named 'lwrp_touch_file.txt' should exist