anchor.diff:      Puppet::Type.type(:dsc_<%= resource.friendlyname.downcase %>).new(
         :name     => <%= format_type_value(@spec_test_values['string']) %>,
   <%  resource.properties.select{|rp| rp.required? }.each do |property| -%>
  -<%  ####################### -%>
   <%    if property.values -%>
  -<%    ####################### -%>
         :dsc_<%= property.name.downcase %> => '<%= property.values.first %>',
   <%    else -%>
  -<%    ####################### -%>
         :dsc_<%= property.name.downcase %> => <%= format_type_value(@spec_test_values[property.type]) %>,
   <%    end -%>
  -<%    ####################### -%>
   <%  end -%>
  -<%  ####################### -%>
       )
     end
   
  
positive.code:   end
  <%      end #  @spec_test_values['munged_ints']... -%>
  <%    else # if property.uint? or property.int? -%> -%>
  <%    ####################### -%>
  
    it 'should not accept uint for dsc_<%= property.name.downcase %>' do
      expect{dsc_<%= resource.friendlyname.downcase %>[:dsc_<%= property.name.downcase %>] = <%= @spec_test_values['uint'] %>}.to raise_error(Puppet::ResourceError)
    end
  <%    end # if property.uint? -%>
  <%    ####################### -%>
  <%  end # resource.properties.each... -%>
  <%  ####################### -%>
  
    describe "provider tests" do
  
  
negative.code:     expect(dsc_<%= resource.friendlyname.downcase %>.to_s).to eq("Dsc_<%= resource.friendlyname.downcase %>[<%= @spec_test_values['string'] %>]")
    end
  <%  if resource.ensurable? -%>
  
    it 'should default to ensure => present' do
      expect(dsc_<%= resource.friendlyname.downcase %>[:ensure]).to eq :present
    end
  <%  end # resource.ensurable? -%>
  <%  resource.properties.each do |property| -%>
  <%    if property.required? -%>
  
    it 'should require that dsc_<%= property.name.downcase %> is specified' do
      #dsc_<%= resource.friendlyname.downcase %>[:dsc_<%= property.name.downcase %>]
      expect { Puppet::Type.type(:dsc_<%= resource.friendlyname.downcase %>).new(
        :name     => <%= format_type_value(@spec_test_values['string']) %>,
  <%      resource.properties.select{|rp| rp.name != property.name}.each do |other_property| -%>
  <%        if other_property.values -%>
        :dsc_<%= other_property.name.downcase %> => '<%= other_property.values.first %>',
  <%        else -%>
        :dsc_<%= other_property.name.downcase %> => <%= format_type_value(@spec_test_values[other_property.type]) || 'nil' %>,
  <%        end # if other_property.values -%>
  <%      end # each -%>
      )}.to raise_error(Puppet::Error, /dsc_<%= property.name.downcase %> is a required attribute/)
    end
  <%    end # if property.required? -%>
  <%    if property.values -%>
  <%      property.values.each do |value| -%>
  
    it 'should accept dsc_<%= property.name.downcase %> predefined value <%= value %>' do
      dsc_<%= resource.friendlyname.downcase %>[:dsc_<%= property.name.downcase %>] = '<%= value %>'
  