Newer
Older
dmpopidor / test / unit / organisation_test.rb
require 'test_helper'

class OrganisationTest < ActiveSupport::TestCase

  # ---------- short_name ----------
  test "short_name should return the abbreviation if it exists" do
    assert_equal(organisations(:dcc).short_name, organisations(:dcc).abbreviation, "Org: DCC has an abreviation and should return it")
  end

  test "short_name should return the name if no abbreviation exists" do
    assert_equal(organisations(:aru).short_name, organisations(:aru).name, "Org: ARU has no abbreviation and should return it's full name")
  end

  # ---------- self.orgs_with_parent_of_type ----------
  test "self.orgs_with_parent_of_type correctly identifies organisation trees" do
    children = Organisation.orgs_with_parent_of_type("institution")
    assert_includes(children, organisations(:institution_child_one), "Org: institution_child_one is a child of an institution")
  end

  # ---------- self.other_organisations ----------
  test "self.other_organisations correctly returns ___" do

  end

  # ---------- all_sections ----------
  test "all_sections returns correct sections" do
    sections = organisations(:dcc).all_sections(versions(:DCC_phase_1_version_1).id)
    org_sections = Section.find_by(organisation: organisations(:dcc))
    org_sections.each do |section|
      if section.version_id == versions(:DCC_phase_1_version_1).id
        assert_includes(sections, section, "Section: #{section.title} should be included")
      end
    end
  end

  test "all_sections returns a parents sections" do
    sections = organisations(:institution_child_one).all_sections(versions(:institution_child_version_1).id)
    assert_includes( sections, sections(:institution_parent_1), "all_sections should return it's parent's sections")
    assert_includes( sections, sections(:institution_parent_2), "all_sections should return it's parent's sections")
  end

  test "all_sections returns [] if no sections are found" do
    sections = organisations(:dcc).all_sections(versions(:institution_child_version_1).id)
    assert_empty( sections, "no sections of that version exist")
  end

  # ---------- all_guidance_groups ----------
  test "all_guidance_groups returns all of the organisations guidance groups" do
    all_groups = organisations(:dcc).all_guidance_groups
    organisations(:dcc).guidance_groups.each do |group|
      assert_includes(all_groups, group, "group: #{group.name} belongs to the specified org")
    end
  end

  test "all_guidance_groups returns all of the organisations children's guidance groups" do
    all_groups = organisations(:institution_parent).all_guidance_groups
    organisations(:institution_child_one).guidance_groups.each do |group|
      assert_includes(all_groups, group, "group: #{group.name} belongs to the specified org")
    end
  end

  # ---------- root ----------
  test "root correctly identifies the parent organisation" do
    assert_equal(organisations(:institution_child_one).root, organizations(:institution_parent), "institution parent is the parent of institution child one")
  end

  test "root returns self if an organisation has no parents" do
    assert_equal(organisations(:dcc).root, organisations(:dcc), "dcc has no parent, so is root")
  end

  # ---------- warning ----------
  test "warning returns specified warning if not nil" do
    flunk
  end

  test "warning returns the parent's warning if nil" do
    flunk
  end

  # ---------- published_templates ----------
  test "published_templates returns all owned and published templates" do
    flunk
  end

end