summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/family_tree_manager_spec.rb14
-rw-r--r--spec/family_tree_spec.rb40
2 files changed, 52 insertions, 2 deletions
diff --git a/spec/family_tree_manager_spec.rb b/spec/family_tree_manager_spec.rb
index d3d21f1..a1161ae 100644
--- a/spec/family_tree_manager_spec.rb
+++ b/spec/family_tree_manager_spec.rb
@@ -4,10 +4,15 @@ require_relative '../lib/family_tree_manager'
RSpec.describe FamilyTreeManager do
let(:family_tree_manager) { FamilyTreeManager.instance }
+ let(:family_tree) { instance_double(FamilyTree) }
+
+ before do
+ family_tree_manager.instance_variable_set(:@family_tree, family_tree)
+ end
describe '#initialize' do
- it 'initialises the family_members hash' do
- expect(family_tree_manager.instance_variable_get(:@family_members)).to eq({})
+ it 'creates a family tree' do
+ expect(family_tree_manager.instance_variable_get(:@family_tree)).to eq(family_tree)
end
end
@@ -15,6 +20,11 @@ RSpec.describe FamilyTreeManager do
it 'is defined' do
expect(family_tree_manager).to respond_to(:add_child)
end
+
+ it 'calls add_child on the family tree' do
+ expect(family_tree).to receive(:add_child).with('Child', 'Mother', 'Father')
+ family_tree_manager.add_child('Child', 'Mother', 'Father')
+ end
end
describe '#query_hierarchy' do
diff --git a/spec/family_tree_spec.rb b/spec/family_tree_spec.rb
new file mode 100644
index 0000000..2059a89
--- /dev/null
+++ b/spec/family_tree_spec.rb
@@ -0,0 +1,40 @@
+# frozen_string_literal: true
+
+require_relative '../lib/family_tree'
+
+RSpec.describe FamilyTree do
+ describe '#initialize' do
+ it 'creates an empty array' do
+ family_tree = FamilyTree.new
+ expect(family_tree.instance_variable_get(:@people)).to eq([])
+ end
+ end
+
+ describe '#add_child' do
+ it 'is defined' do
+ family_tree = FamilyTree.new
+ expect(family_tree).to respond_to(:add_child)
+ end
+
+ it 'prints the params' do
+ family_tree = FamilyTree.new
+ expect do
+ family_tree.add_child('Child', 'Mother', 'Father')
+ end.to output("Adding Child with params: Child, Mother, Father\n").to_stdout
+ end
+ end
+
+ describe '#query_hierarchy' do
+ it 'is defined' do
+ family_tree = FamilyTree.new
+ expect(family_tree).to respond_to(:query_hierarchy)
+ end
+
+ it 'prints the params' do
+ family_tree = FamilyTree.new
+ expect do
+ family_tree.query_hierarchy('Child')
+ end.to output("Querying Hierarcy with params: Child\n").to_stdout
+ end
+ end
+end