From 8d16abb3f57336af73b91e3e4b387f4936a8084d Mon Sep 17 00:00:00 2001 From: Szymon Szukalski Date: Thu, 24 Oct 2024 12:36:22 +1100 Subject: Implement minimal FamilyTreeManager and tests --- lib/family_tree_manager.rb | 14 ++++++++++++++ spec/family_tree_manager_spec.rb | 25 +++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 lib/family_tree_manager.rb create mode 100644 spec/family_tree_manager_spec.rb diff --git a/lib/family_tree_manager.rb b/lib/family_tree_manager.rb new file mode 100644 index 0000000..75e1b05 --- /dev/null +++ b/lib/family_tree_manager.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +require 'singleton' + +class FamilyTreeManager + include Singleton + + def initialize + @family_members = {} + end + + def add_child(*params); end + def query_hierarchy(*params); end +end diff --git a/spec/family_tree_manager_spec.rb b/spec/family_tree_manager_spec.rb new file mode 100644 index 0000000..d3d21f1 --- /dev/null +++ b/spec/family_tree_manager_spec.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +require_relative '../lib/family_tree_manager' + +RSpec.describe FamilyTreeManager do + let(:family_tree_manager) { FamilyTreeManager.instance } + + describe '#initialize' do + it 'initialises the family_members hash' do + expect(family_tree_manager.instance_variable_get(:@family_members)).to eq({}) + end + end + + describe '#add_child' do + it 'is defined' do + expect(family_tree_manager).to respond_to(:add_child) + end + end + + describe '#query_hierarchy' do + it 'is defined' do + expect(family_tree_manager).to respond_to(:query_hierarchy) + end + end +end -- cgit v1.2.3