Sha256: 9e65af98fd8135b6dbaa66bd8518137ee65ed39906a6ab972d293cf38d862c1a

Contents?: true

Size: 1.36 KB

Versions: 4

Compression:

Stored size: 1.36 KB

Contents

require 'test_helper'

class InputsTest < Minitest::Test
  include InvoicePrinterHelpers

  def test_refuse_documents_of_wrong_class
    assert_raises(StandardError) do
      InvoicePrinter::PDFDocument.new(document: String.new)
    end

    assert_raises(StandardError) do
      InvoicePrinter.render(document: String.new)
    end
  end

  def test_refuse_items_of_wrong_class
    assert_raises(StandardError) do
      InvoicePrinter::Document.new(items: String.new)
    end
  end

  def test_non_string_inputs_are_converted_to_strings
    params = default_document_params.merge(
      provider_ic: 12345678910,
      provider_dic: 12345678910,
      purchaser_ic: 12345678910,
      purchaser_dic: 12345678910
    )

    # No exceptions should be raised
    invoice = InvoicePrinter::Document.new(params)
    InvoicePrinter.render(document: invoice)
  end

  def test_missing_font_raises_an_exception
    invoice = InvoicePrinter::Document.new(default_document_params)

    assert_raises(InvoicePrinter::PDFDocument::FontFileNotFound) do
      InvoicePrinter.render(document: invoice, font: 'missing.font')
    end
  end

  def test_missing_logo_raises_an_exception
    invoice = InvoicePrinter::Document.new(default_document_params)

    assert_raises(InvoicePrinter::PDFDocument::LogoFileNotFound) do
      InvoicePrinter.render(document: invoice, logo: 'missing.png')
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
invoice_printer-0.0.5 test/inputs_test.rb
invoice_printer-0.0.4 test/inputs_test.rb
invoice_printer-0.0.3 test/inputs_test.rb
invoice_printer-0.0.2 test/inputs_test.rb