require "spec_helper" require "relaton_iso" require "relaton_ietf" RSpec.describe Asciidoctor::ISO do it "processes draft ISO reference" do #stub_fetch_ref no_year: true, note: "The standard is in press" expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT") #{ASCIIDOC_BLANK_HDR} [bibliography] == Normative References * [[[iso123,ISO 123:--]]] footnote:[The standard is in press] _Standard_ INPUT #{BLANK_HDR} Normative References

The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.

Standard ISO 123:— International Organization for Standardization ISO ISO DATE: The standard is in press
OUTPUT end it "processes all-parts ISO reference" do #stub_fetch_ref(all_parts: true) expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT") #{ASCIIDOC_BLANK_HDR} [bibliography] == Normative References * [[[iso123,ISO 123:1066 (all parts)]]] _Standard_ INPUT #{BLANK_HDR} Normative References

The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.

Standard ISO 123:1066 (all parts) 1066 International Organization for Standardization ISO all
OUTPUT end it "processes non-ISO reference in Normative References" do expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT") #{ASCIIDOC_BLANK_HDR} [bibliography] == Normative References * [[[iso123,XYZ 123:1066 (all parts)]]] _Standard_ INPUT #{BLANK_HDR} Normative References

The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.

Standard XYZ 123:1066 (all parts)
OUTPUT end it "processes non-ISO reference in Bibliography" do expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT") #{ASCIIDOC_BLANK_HDR} [bibliography] == Bibliography * [[[iso123,1]]] _Standard_ INPUT #{BLANK_HDR} Bibliography Standard [1] OUTPUT end private private def mock_isobib_get_123 expect(Isobib::IsoBibliography).to receive(:get).with("ISO 123", nil, {}) do IsoBibItem::XMLParser.from_xml(<<~"OUTPUT") \n #{Date.today}\nRubber latex -- Sampling\n Latex de caoutchouc -- ?chantillonnage\n https://www.iso.org/standard/23281.html\n https://www.iso.org/obp/ui/#!iso:std:23281:en\n https://www.iso.org/contents/data/standard/02/32/23281.detail.rss\n ISO 123:2001\n \n 2001\n \n \n \n \n International Organization for Standardization\n ISO\n www.iso.org\n \n \n 3\n en\n fr\n \n Published\n \n 2001\n \n \n ISO\n \n \n \n \n \n \n ISO 123:1985\n \n \n \n \n ISO 123:2001\n \n \n OUTPUT end end def mock_isobib_get_124 expect(Isobib::IsoBibliography).to receive(:get).with("ISO 124", "2014", {}) do IsoBibItem::XMLParser.from_xml(<<~"OUTPUT") #{Date.today} Latex, rubber -- Determination of total solids content Latex de caoutchouc -- Détermination des matières solides totales https://www.iso.org/standard/61884.html https://www.iso.org/obp/ui/#!iso:std:61884:en https://www.iso.org/contents/data/standard/06/18/61884.detail.rss ISO 124:2014 2014 International Organization for Standardization ISO www.iso.org 7 en fr ISO 124:2014 specifies methods for the determination of the total solids content of natural rubber field and concentrated latices and synthetic rubber latex. These methods are not necessarily suitable for latex from natural sources other than the Hevea brasiliensis, for vulcanized latex, for compounded latex, or for artificial dispersions of rubber. Published 2014 ISO ISO 124:2011 83.040.10 Latex and raw rubber OUTPUT end end def mock_isobib_get_iec12382 expect(Isobib::IsoBibliography).to receive(:get).with("ISO/IEC TR 12382", "1992", {}) do IsoBibItem::XMLParser.from_xml(<<~"OUTPUT") #{Date.today} Permuted index of the vocabulary of information technology Index permuté du vocabulaire des technologies de l'information https://www.iso.org/standard/21071.html https://www.iso.org/obp/ui/#!iso:std:21071:en https://www.iso.org/contents/data/standard/02/10/21071.detail.rss ISO/IEC 12382:1992 1992 International Organization for Standardization ISO www.iso.org International Electrotechnical Commission IEC www.iec.ch 2 en fr Contains a permuted index of all terms included in the parts 1 - 28 of ISO 2382. If any of these parts has been revised, the present TR refers to the revision. Published 1992 ISO/IEC ISO/IEC TR 12382:1992 35.020 Information technology (IT) in general 01.040.35 Information technology (Vocabularies) OUTPUT end end def mock_rfcbib_get_rfc8341 expect(IETFBib::RfcBibliography).to receive(:get).with("RFC 8341", nil, {}) do IETFBib::XMLParser.from_xml(<<~"OUTPUT") #{Date.today} Network Configuration Access Control Model RFC 8341 2018 published OUTPUT end end end