Sha256: 34d6f353eb5fc25c3d9a26072aed80f58803cbbcf2f984d5376df3a611b1d431

Contents?: true

Size: 1.5 KB

Versions: 1

Compression:

Stored size: 1.5 KB

Contents

# frozen_string_literal: true

################################################
# © Alexander Semyonov, 2011—2013, MIT License #
# Author: Alexander Semyonov <al@semyonov.us>  #
################################################

require 'spec_helper'

RSpec.describe Xommelier::Atom::Feed do
  describe '.new(Hash)' do
    let(:hash) do
      {
        title: 'Xommelier nest elements',
        subtitle: 'Xommelier is able to build complex objects from very nested hash',
        author: { name: 'Alexander', email: 'al@semyonov.us' },
        updated: Time.utc(2012, 4, 4, 4, 4),
        contributors: [
          { name: 'Artyom', email: 'sevenov@gmail.com' },
          { name: 'Sergey', email: 'sergey@ukstv.me' }
        ],
        entries: [
          { title: 'First article', updated: Time.utc(2012, 1, 1, 1, 1) },
          { title: 'Second article', updated: Time.utc(2012, 2, 2, 2, 2) },
          { title: 'Third article', updated: Time.utc(2012, 3, 3, 3, 3) }
        ]
      }
    end

    subject(:doc) { described_class.new(hash) }

    its('authors.size') { should == 1 }
    its('contributors.size') { should == 2 }
    its('entries.size') { should == 3 }

    it { expect(doc.author).to be_an(Xommelier::Atom::Person) }
    it { expect(doc.contributors[1]).to be_an(Xommelier::Atom::Person) }
    it { expect(doc.entries[1]).to be_an(Xommelier::Atom::Entry) }

    its(:to_hash) { should == hash }
    its(:to_xml) { should == load_xml_file('nested_atom') }
    it_behaves_like 'Valid XML Document'
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
xommelier-0.1.35 spec/functional/xommelier/atom/feed/building_hash_spec.rb