defmodule TestXmlParsing do def run do IO.puts("๐Ÿงช Testing XML Parser") xml = """ """ IO.puts("๐Ÿ“ Input XML:") IO.puts(xml) IO.puts("\n๐Ÿ” Testing SweetXml directly...") try do doc = SweetXml.parse(xml) root = SweetXml.xpath(doc, ~x"/*"e) IO.puts("Root element: #{inspect(root)}") case root do {element_name, _, _} -> IO.puts("Element name: #{element_name}") element_name when is_atom(element_name) -> IO.puts("Atom element: #{element_name}") _ -> IO.puts("Unknown root format: #{inspect(root)}") end rescue e -> IO.puts("SweetXml error: #{inspect(e)}") end IO.puts("\n๐Ÿ” Testing UPI Parser...") case DaProductApp.QRValidation.Parser.UpiXmlParser.parse_upi_xml(xml) do {:ok, result} -> IO.puts("โœ… Success!") IO.puts("Message type: #{result.message_type}") IO.puts("Header: #{inspect(result.header)}") IO.puts("QR: #{inspect(result.qr)}") {:error, reason} -> IO.puts("โŒ Error:") IO.puts(inspect(reason)) end IO.puts("\n๐Ÿ” Testing QR Service...") case DaProductApp.QRValidation.Service.ingest_valqr_xml(xml) do {:ok, qr_validation} -> IO.puts("โœ… Service Success!") IO.puts("QR Validation ID: #{qr_validation.id}") IO.puts("Status: #{qr_validation.status}") {:error, reason} -> IO.puts("โŒ Service Error:") IO.puts(inspect(reason)) end end end # Run the test TestXmlParsing.run()