Sha256: 9a27c8d61e4ae9ca780a91bd4b6adaebf2aae4f4dab6bb2d094da9708ac869fa

Contents?: true

Size: 1.51 KB

Versions: 2

Compression:

Stored size: 1.51 KB

Contents

# coding: utf-8
# 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

2 entries across 2 versions & 1 rubygems

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