#!/bin/bash setUp() { rm test*.yml 2>/dev/null || true rm test*.properties 2>/dev/null || true rm test*.csv 2>/dev/null || true rm test*.tsv 2>/dev/null || true rm test*.xml 2>/dev/null || true } testInputProperties() { cat >test.properties <test.properties <test.csv <test.csv <test.tsv <test.tsv <test.yml <BiBi EOL read -r -d '' expected << EOM cat: +content: BiBi +@legs: "4" EOM X=$(./yq e -p=xml test.yml) assertEquals "$expected" "$X" X=$(./yq ea -p=xml test.yml) assertEquals "$expected" "$X" } testInputXmlNamespaces() { cat >test.xml < EOL read -r -d '' expected << EOM +p_xml: version="1.0" map: +@xmlns: some-namespace +@xmlns:xsi: some-instance +@xsi:schemaLocation: some-url EOM X=$(./yq e -p=xml test.xml) assertEquals "$expected" "$X" X=$(./yq ea -p=xml test.xml) assertEquals "$expected" "$X" } testInputXmlRoundtrip() { cat >test.yml < Meow EOL read -r -d '' expected << EOM Meow EOM X=$(./yq -p=xml -o=xml test.yml) assertEquals "$expected" "$X" X=$(./yq ea -p=xml -o=xml test.yml) assertEquals "$expected" "$X" } testInputXmlStrict() { cat >test.yml < ]> &writer;©right; EOL X=$(./yq -p=xml --xml-strict-mode test.yml -o=xml 2>&1) assertEquals 1 $? assertEquals "Error: bad file 'test.yml': XML syntax error on line 7: invalid character entity &writer;" "$X" X=$(./yq ea -p=xml --xml-strict-mode test.yml -o=xml 2>&1) assertEquals "Error: bad file 'test.yml': XML syntax error on line 7: invalid character entity &writer;" "$X" } testInputXmlGithubAction() { cat >test.yml <BiBi EOL read -r -d '' expected << EOM cat: +content: BiBi +@legs: "4" EOM X=$(cat /dev/null | ./yq e -p=xml test.yml) assertEquals "$expected" "$X" X=$(cat /dev/null | ./yq ea -p=xml test.yml) assertEquals "$expected" "$X" } source ./scripts/shunit2