summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSzymon Szukalski <szymon@skas.io>2024-10-24 12:36:22 +1100
committerSzymon Szukalski <szymon@skas.io>2024-10-24 12:36:22 +1100
commit8d16abb3f57336af73b91e3e4b387f4936a8084d (patch)
tree9f65dd8f36a0779aeaa7a42172be284bd7743a7c
parent08534a8164699017aa847fef62602abf6ec59e8f (diff)
Implement minimal FamilyTreeManager and tests
-rw-r--r--lib/family_tree_manager.rb14
-rw-r--r--spec/family_tree_manager_spec.rb25
2 files changed, 39 insertions, 0 deletions
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