# frozen_string_literal: true require 'spec_helper' require 'briard/cli' describe Briard::CLI do context "find_from_format_by_id", vcr: true do let(:subject) do described_class.new end it "crossref" do id = "https://doi.org/10.7554/eLife.01567" expect(subject.find_from_format_by_id(id)).to eq("crossref") end it "datacite" do id = "https://doi.org/10.5061/DRYAD.8515" expect(subject.find_from_format_by_id(id)).to eq("datacite") end it "medra" do id = "https://doi.org/10.1392/roma081203" expect(subject.find_from_format_by_id(id)).to eq("medra") end it "kisti" do id = "https://doi.org/10.5012/bkcs.2013.34.10.2889" expect(subject.find_from_format_by_id(id)).to eq("kisti") end it "jalc" do id = "https://doi.org/10.11367/grsj1979.12.283" expect(subject.find_from_format_by_id(id)).to eq("jalc") end it "op" do id = "https://doi.org/10.2791/81962" expect(subject.find_from_format_by_id(id)).to eq("op") end it "cff" do id = "https://github.com/citation-file-format/ruby-cff/blob/main/CITATION.cff" expect(subject.find_from_format_by_id(id)).to eq("cff") end it "codemeta" do id = "https://github.com/datacite/maremma/blob/master/codemeta.json" expect(subject.find_from_format_by_id(id)).to eq("codemeta") end it "npm" do id = "https://github.com/datacite/bracco/blob/master/package.json" expect(subject.find_from_format_by_id(id)).to eq("npm") end it "schema_org" do id = "https://dataverse.harvard.edu/dataset.xhtml?persistentId=doi:10.7910/DVN/GAOC03" expect(subject.find_from_format_by_id(id)).to eq("schema_org") end end context "find_from_format_by_filename" do let(:subject) do described_class.new end it "npm" do filename = "package.json" expect(subject.find_from_format_by_filename(filename)).to eq("npm") end it "cff" do filename = "CITATION.cff" expect(subject.find_from_format_by_filename(filename)).to eq("cff") end end context "find_from_format_by_string" do let(:subject) do described_class.new end it "crossref" do string = IO.read(fixture_path + 'crossref.xml').strip expect(subject.find_from_format_by_string(string)).to eq("crossref") end it "datacite" do string = IO.read(fixture_path + 'datacite.xml').strip expect(subject.find_from_format_by_string(string)).to eq("datacite") end it "datacite namespaced" do string = IO.read(fixture_path + 'ns0.xml').strip expect(subject.find_from_format_by_string(string)).to eq("datacite") end it "codemeta" do string = IO.read(fixture_path + 'codemeta.json').strip expect(subject.find_from_format_by_string(string)).to eq("codemeta") end it "cff" do string = IO.read(fixture_path + 'CITATION.cff').strip expect(subject.find_from_format_by_string(string)).to eq("cff") end it "schema_org" do string = IO.read(fixture_path + 'schema_org_topmed.json').strip expect(subject.find_from_format_by_string(string)).to eq("schema_org") end it "ris" do string = IO.read(fixture_path + 'crossref.ris').strip expect(subject.find_from_format_by_string(string)).to eq("ris") end it "ris from pure" do string = IO.read(fixture_path + 'pure.ris').strip expect(subject.find_from_format_by_string(string)).to eq("ris") end it "bibtex" do string = IO.read(fixture_path + 'crossref.bib').strip expect(subject.find_from_format_by_string(string)).to eq("bibtex") end end end