source [expr {[info exists ::env(TESTS_DIR)] ? "$env(TESTS_DIR)/interactive/ly.tcl" : "ly.tcl"}]

set mdir "$::env(YANG_MODULES_DIR)"
set ddir "$::env(TESTS_DIR)/data"

test extdata_set_clear {Set and clear extdata file} {
-setup $ly_setup -cleanup $ly_cleanup -body {
    ly_cmd "extdata" "No file set"
    ly_cmd "extdata $ddir/modsm_ctx_ext.xml"
    ly_cmd "extdata" "$ddir/modsm_ctx_ext.xml"
    ly_cmd "extdata -c"
    ly_cmd "extdata" "No file set"
}}

test extdata_clear_cmd {Clear extdata file by 'clear' command} {
-setup $ly_setup -cleanup $ly_cleanup -body {
    ly_cmd "extdata $ddir/modsm_ctx_ext.xml"
    ly_cmd "clear"
    ly_cmd "extdata" "No file set"
}}

test extdata_one_only {Only one file for extdata} {
-setup $ly_setup -cleanup $ly_cleanup -body {
    ly_cmd_err "extdata $ddir/modsm_ctx_ext.xml $ddir/modsm_ctx_ext.xml" "Only one file must be entered"
}}

test extdata_schema_mount_tree {Print tree output of a model with Schema Mount} {
-setup $ly_setup -cleanup $ly_cleanup -body {
    ly_cmd "clear -y"
    ly_cmd "searchpath $mdir"
    ly_cmd "load modsm"
    ly_cmd "extdata $ddir/modsm_ctx_ext.xml"
    ly_cmd "print -f tree modsm" "--mp root.*--rw lfl/"
}}

test ext_data_schema_mount_tree_yanglibfile {Print tree output of a model with Schema Mount and --yang-library-file} {
-setup $ly_setup -cleanup $ly_cleanup -body {
    ly_cmd "clear -Y $ddir/modsm_ctx_main.xml"
    ly_cmd "searchpath $mdir"
    ly_cmd "load modsm"
    ly_cmd "extdata $ddir/modsm_ctx_ext.xml"
    ly_cmd "print -f tree modsm" "--mp root.*--rw lfl/.*--rw msa:alf?"
}}

test ext_data_schema_mount_xml {Validating and printing mounted data} {
-setup $ly_setup -cleanup $ly_cleanup -body {
    ly_cmd "clear -y"
    ly_cmd "searchpath $mdir"
    ly_cmd "load modsm"
    ly_cmd "extdata $ddir/modsm_ctx_ext.xml"
    ly_cmd "data -f xml -t config $ddir/modsm.xml" "</lfl>"
}}

test ext_data_schema_mount_xml_yanglibfile {Validating and printing mounted data with --yang-library-file} {
-setup $ly_setup -cleanup $ly_cleanup -body {
    ly_cmd "clear -Y $ddir/modsm_ctx_main.xml"
    ly_cmd "searchpath $mdir"
    ly_cmd "load modsm"
    ly_cmd "extdata $ddir/modsm_ctx_ext.xml"
    ly_cmd "data -f xml -t config $ddir/modsm2.xml" "</lfl>.*</alf>"
}}

cleanupTests
