module DataHelpers
  module PplXmlUpload
    class << self
      attr_reader :uploaded_file
      attr_writer :downloaded_file

      def create_unique_copy
        src = File.join(Support::Paths.assets, "templates", "ppl_xml", "ppl_xml_tuid.txt")
        new_name = "#{File.basename(src)}_#{Time.stamp}.txt"
        dst = File.join(Support::Paths.uploads, new_name)
        FileUtils.cp(src, dst)
        @uploaded_file = dst
      end

      def ensure_files_match
        fail "uploaded file not set!" unless @uploaded_file
        fail "downloaded file not set!" unless @downloaded_file

        # files have different whitespace
        stripped_upload = IO.read(@uploaded_file).strip
        stripped_download = IO.read(@downloaded_file).strip
        files_match = stripped_upload == stripped_download
        fail "uploaded file does not match downloaded file!" unless files_match
      end
    end
  end
end
