Sha256: a5ea5843be0798d48959ffdc8128ea71b6dcb096bb06de346fe879d8638d8bb5

Contents?: true

Size: 1.16 KB

Versions: 597

Compression:

Stored size: 1.16 KB

Contents

require 'spec_helper'

require 'puppet/pops'
require 'puppet/pops/evaluator/literal_evaluator'

describe "Puppet::Pops::Evaluator::LiteralEvaluator" do
  let(:parser) {  Puppet::Pops::Parser::EvaluatingParser.new }
  let(:leval)  {  Puppet::Pops::Evaluator::LiteralEvaluator.new }

  { "1"       => 1,
    "3.14"    => 3.14,
    "true"    => true,
    "false"   => false,
    "'1'"     => '1',
    "'a'"     => 'a',
    '"a"'     => 'a',
    'a'       => 'a',
    'a::b'    => 'a::b',

    # special values
    'default' => :default,
    '/.*/'    => /.*/,

    # collections
    '[1,2,3]'     => [1,2,3],
    '{a=>1,b=>2}' => {'a' => 1, 'b' => 2},

  }.each do |source, result|
    it "evaluates '#{source}' to #{result}" do
      expect(leval.literal(parser.parse_string(source))).to eq(result)
    end
  end

  it "evaluates undef to nil" do
    expect(leval.literal(parser.parse_string('undef'))).to be_nil
  end

  ['1+1', 'File', '[1,2, 1+2]', '{a=>1+1}', 'Integer[1]', '"x$y"', '"x${y}z"'].each do |source|
    it "throws :not_literal for non literal expression '#{source}'" do
      expect{leval.literal(parser.parse_string('1+1'))}.to throw_symbol(:not_literal)
    end
  end
end

Version data entries

597 entries across 597 versions & 1 rubygems

Version Path
puppet-8.3.0 spec/unit/pops/evaluator/literal_evaluator_spec.rb
puppet-8.3.0-x86-mingw32 spec/unit/pops/evaluator/literal_evaluator_spec.rb
puppet-8.3.0-x64-mingw32 spec/unit/pops/evaluator/literal_evaluator_spec.rb
puppet-8.3.0-universal-darwin spec/unit/pops/evaluator/literal_evaluator_spec.rb
puppet-8.4.0 spec/unit/pops/evaluator/literal_evaluator_spec.rb
puppet-8.4.0-x86-mingw32 spec/unit/pops/evaluator/literal_evaluator_spec.rb
puppet-8.4.0-x64-mingw32 spec/unit/pops/evaluator/literal_evaluator_spec.rb
puppet-8.4.0-universal-darwin spec/unit/pops/evaluator/literal_evaluator_spec.rb
puppet-7.28.0 spec/unit/pops/evaluator/literal_evaluator_spec.rb
puppet-7.28.0-x86-mingw32 spec/unit/pops/evaluator/literal_evaluator_spec.rb
puppet-7.28.0-x64-mingw32 spec/unit/pops/evaluator/literal_evaluator_spec.rb
puppet-7.28.0-universal-darwin spec/unit/pops/evaluator/literal_evaluator_spec.rb
puppet-8.3.1 spec/unit/pops/evaluator/literal_evaluator_spec.rb
puppet-8.3.1-x86-mingw32 spec/unit/pops/evaluator/literal_evaluator_spec.rb
puppet-8.3.1-x64-mingw32 spec/unit/pops/evaluator/literal_evaluator_spec.rb
puppet-8.3.1-universal-darwin spec/unit/pops/evaluator/literal_evaluator_spec.rb
puppet-7.27.0 spec/unit/pops/evaluator/literal_evaluator_spec.rb
puppet-7.27.0-x86-mingw32 spec/unit/pops/evaluator/literal_evaluator_spec.rb
puppet-7.27.0-x64-mingw32 spec/unit/pops/evaluator/literal_evaluator_spec.rb
puppet-7.27.0-universal-darwin spec/unit/pops/evaluator/literal_evaluator_spec.rb