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(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
#{ASCIIDOC_BLANK_HDR}
[bibliography]
== Normative References
* [[[iso123,ISO 123:--]]] footnote:[The standard is in press] _Standard_
INPUT
#{BLANK_HDR}
Normative References
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(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
#{ASCIIDOC_BLANK_HDR}
[bibliography]
== Normative References
* [[[iso123,ISO 123:1066 (all parts)]]] _Standard_
INPUT
#{BLANK_HDR}
Normative References
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(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
#{ASCIIDOC_BLANK_HDR}
[bibliography]
== Normative References
* [[[iso123,XYZ 123:1066 (all parts)]]] _Standard_
INPUT
#{BLANK_HDR}
Normative References
Standard
XYZ 123:1066 (all parts)
OUTPUT
end
it "processes non-ISO reference in Bibliography" do
expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true))).to be_equivalent_to <<~"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