Sha256: bbaa5d6b4484fe9d63180fbf7ccac277af90fc37dc3e136390b5d5d09daf6a79

Contents?: true

Size: 1.96 KB

Versions: 3

Compression:

Stored size: 1.96 KB

Contents

require_relative "test_helper"

class BasicTest < ActiveSupport::TestCase

  test "archive archives the record" do
    archival = Archival.create!
    archival.archive!
    assert_equal true, archival.reload.archived?
  end

  test "unarchive unarchives archival records" do
    archival = Archival.create!(archived_at: Time.now.utc, archive_number: 1)
    archival.unarchive!
    assert_equal false, archival.reload.archived?
  end

  test "archive returns true on success" do
    normal = Archival.create!
    assert_equal true, normal.archive!
  end

  test "archive returns false on failure" do
    readonly = Archival.create!
    readonly.readonly!
    assert_equal false, readonly.archive!
  end

  test "unarchive returns true on success" do
    normal = Archival.create!(archived_at: Time.now.utc, archive_number: "1")
    assert_equal true, normal.unarchive!
  end

  test "unarchive returns false on failure" do
    readonly = Archival.create!(archived_at: Time.now.utc, archive_number: "1")
    readonly.readonly!
    assert_equal false, readonly.unarchive!
  end

  test "archive sets archived_at to the time of archiving" do
    archival = Archival.create!
    before = DateTime.now.utc
    sleep(0.001)
    archival.archive!
    sleep(0.001)
    after = DateTime.now.utc
    assert before < archival.archived_at.to_datetime
    assert after > archival.archived_at.to_datetime
  end

  test "archive sets the archive number to the md5 hexdigest for the model and id that is archived" do
    archival = Archival.create!
    archival.archive!
    expected_digest = Digest::MD5.hexdigest("#{archival.class.name}#{archival.id}")
    assert_equal expected_digest, archival.archive_number
  end

  test "archive on archived object doesn't alter the archive_number" do
    archived = Archival.create
    archived.archive!
    initial_number = archived.archive_number
    archived.reload.archive!
    second_number = archived.archive_number
    assert_equal initial_number, second_number
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
archival_record-4.0.0 test/basic_test.rb
archival_record-3.0.1 test/basic_test.rb
archival_record-3.0.0 test/basic_test.rb