    # File lib/chef/mixin/why_run.rb, line 231
              def run(action, events, resource)
                if !@assertion_proc || !@assertion_proc.call
                  @assertion_failed = true
                  if Chef::Config[:why_run] && @whyrun_message
                    events.provider_requirement_failed(action, resource, @exception_type, @failure_message)
                    events.whyrun_assumption(action, resource, @whyrun_message) if @whyrun_message
                    @resource_modifier.call if @resource_modifier
                  else
                    if @failure_message
                      events.provider_requirement_failed(action, resource, @exception_type, @failure_message)
                      raise @exception_type, @failure_message
                    end
                  end
                end
              end