diff --git a/test/unit/organisation_test.rb b/test/unit/organisation_test.rb index 8dc35ff..e503b4c 100644 --- a/test/unit/organisation_test.rb +++ b/test/unit/organisation_test.rb @@ -1,7 +1,85 @@ require 'test_helper' class OrganisationTest < ActiveSupport::TestCase - # test "the truth" do - # assert true - # end + + # ---------- 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