# frozen_string_literal: true

require 'spec_helper'

describe CXML::ItemID do
  it { should respond_to :supplier_part_id }
  it { should respond_to :supplier_part_auxiliary_id }

  let(:parser) { CXML::Parser.new }
  let(:data) { parser.parse(fixture('punch_out_order_message_doc.xml')) }
  let(:doc) { CXML::Document.new(data) }
  let(:punch_out_order_message) { doc.message.punch_out_order_message }
  let(:builder) { doc.render }

  describe '#initialize' do
    let(:item_in) { CXML::ItemIn.new(build_item_in(parser)) }
    let(:item_id) { item_in.item_id }

    it 'sets the attributes that are passed' do
      item_id.supplier_part_id.should_not be_nil
    end
  end

  describe '#render' do
    before(:each) do
      punch_out_order_message.add_item(build_item_in(parser))
    end

    let(:output_xml) { builder.to_xml }
    let(:output_data) { parser.parse(output_xml) }
    let(:punch_out_order_message_output_data) { output_data[:message][:punch_out_order_message] }
    let(:item_in_output_data) { punch_out_order_message_output_data[:item_in] }
    let(:item_id_output_data) { item_in_output_data[:item_id] }

    it 'contains the required nodes' do
      item_id_output_data[:supplier_part_id].should_not be_empty
      item_id_output_data.should include(:supplier_part_auxiliary_id)
    end
  end
end