Class: ApprovalTests::Approvers::FileApprover

Inherits:
Object
  • Object
show all
Defined in:
lib/approval_tests/approvers/file_approver.rb

Instance Method Summary collapse

Constructor Details

#initialize(writer, namer) ⇒ FileApprover

Returns a new instance of FileApprover.



6
7
8
9
# File 'lib/approval_tests/approvers/file_approver.rb', line 6

def initialize(writer, namer)
	@writer = writer
	@namer = namer
end

Instance Method Details

#approveObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/approval_tests/approvers/file_approver.rb', line 11

def approve
	basename = "#{@namer.source_file_path}/#{@namer.approval_name}"
	@approved = @writer.get_approval_filename(basename)
	@received = @writer.get_received_filename(basename)
	@received = @writer.write_received_file(@received)

	unless File.exists?(@approved)
	  @failure = ApprovalError.new("Failed Approval: Approval File \"#{@approved}\" Not Found.")
	  @failure.received_filename = @received
	  @failure.approved_filename = @approved
		return false
	end

	unless FileUtils.cmp(@received, @approved)
	  @failure = ApprovalError.new("Failed Approval: Received file #{@received} does not match approved file #{@approved}.")
	  @failure.received_filename = @received
	  @failure.approved_filename = @approved
		return false
	end

	return true
end

#clean_up_after_successObject



42
43
44
# File 'lib/approval_tests/approvers/file_approver.rb', line 42

def clean_up_after_success
  File.delete(@received)
end

#failObject

Raises:

  • (@failure)


34
35
36
# File 'lib/approval_tests/approvers/file_approver.rb', line 34

def fail
  raise @failure
end

#report_failure(reporter) ⇒ Object



38
39
40
# File 'lib/approval_tests/approvers/file_approver.rb', line 38

def report_failure(reporter)
  reporter.report(@approved, @received);
end