Sha256: 2796a4732115f75ca1297739b845d2aef1f684ebf5a03fc305c3bab3367f6ab3

Contents?: true

Size: 1.2 KB

Versions: 8

Compression:

Stored size: 1.2 KB

Contents

require 'spec_helper'

describe "Attribute Default Value" do

  context "when given a default value" do

    class Meal
      include HappyMapper
      tag 'meal'
      attribute :type, String, :default => 'omnivore'
    end

    let(:subject) { Meal }
    let(:default_meal_type) { 'omnivore' }

    context "when no value has been specified" do
      it "returns the default value" do
        meal = subject.parse('<meal />')
        expect(meal.type).to eq default_meal_type
      end
    end

    context "when saving to xml" do

      let(:expected_xml) { %{<?xml version="1.0"?>\n<meal/>\n} }

      it "the default value is not included" do
        meal = subject.new
        expect(meal.to_xml).to eq expected_xml
      end
    end

    context "when a new, non-nil value has been set" do
      it "returns the new value" do
        meal = subject.parse('<meal />')
        meal.type = 'vegan'

        expect(meal.type).to_not eq default_meal_type
      end

      let(:expected_xml) { %{<?xml version="1.0"?>\n<meal type="kosher"/>\n} }

      it "saves the new value to the xml" do
        meal = subject.new
        meal.type = 'kosher'
        expect(meal.to_xml).to eq expected_xml
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 4 rubygems

Version Path
nokogiri-happymapper-0.6.0 spec/attribute_default_value_spec.rb
xmlmapper-0.5.9 spec/attribute_default_value_spec.rb
instructure-happymapper-0.5.10 spec/attribute_default_value_spec.rb
nokogiri-happymapper-deiga-0.5.10 spec/attribute_default_value_spec.rb
nokogiri-happymapper-deiga-0.5.9 spec/attribute_default_value_spec.rb
nokogiri-happymapper-0.5.9 spec/attribute_default_value_spec.rb
nokogiri-happymapper-0.5.8 spec/attribute_default_value_spec.rb
nokogiri-happymapper-0.5.7 spec/attribute_default_value_spec.rb