Class: GoldmasterTestCase

Inherits:
ConcordionTestCase show all
Includes:
FailConditionally
Defined in:
lib/goldmaster_test_case.rb

Instance Method Summary collapse

Methods included from FailConditionally

#fail_if_write_still_enabled

Methods inherited from ConcordionTestCase

inherited, #is_trivial?, original_inherited, #test_something_trivial_to_shut_runit_up, #trivial

Methods included from Concordion::ConfigMethods

#bind_test_method_to, #default_config

Methods included from Concordion::InternalTestMethods

#assert_concordion_document, #assert_no_failures, #parse_spec, #report_spec, #run_spec, #show_failures

Methods included from Concordion::Utility

#concordion_arguments, #concordion_cmd_attr_exists?, #concordion_cmd_attr_for, #concordion_property_reference, #concordion_variable_name, #has_property_reference?, #instrumentation

Methods included from Concordion::StringUtility

#assignment, #attr_writer_method?, #concordion_assignment, #concordion_method_name, #ends_in_empty_parens?, #escape_single_quotes, #has_arguments?, #has_assignment?, #is_direct_method_call?

Methods included from Concordion::PluralToSingularUtility

#singular

Methods included from Concordion::SnakeCaseUtility

#snake_case, #snake_cased_goldmaster_name, #snake_cased_test_name

Methods included from Concordion::Constants

#concordion_command_attributes, #supported?

Constructor Details

#initialize(suite, conf = {}) ⇒ GoldmasterTestCase

Returns a new instance of GoldmasterTestCase.



18
19
20
21
22
23
24
# File 'lib/goldmaster_test_case.rb', line 18

def initialize(suite, conf = {})
  @writer = Concordion::StringWriter.new

  config = ConcordionTestCase.default_config.merge(conf)
  @write_goldmaster = config[:write_goldmaster]    
  super(suite, config)
end

Instance Method Details

#rcor_writerObject



26
27
28
# File 'lib/goldmaster_test_case.rb', line 26

def rcor_writer
  @writer
end

#teardownObject



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/goldmaster_test_case.rb', line 38

def teardown
  fail_if_write_still_enabled(self.class, writer, @writer.data, snake_cased_goldmaster_name(self.class.to_s))
  
  unless is_trivial?
    goldmaster = Concordion::Reader.new.read(snake_cased_goldmaster_name(self.class.to_s))
    assert @writer.data.size > 0

    diffs = Diff::LCS.diff(@writer.data, goldmaster)
    pos = diffs[0].entries[0].position
    context_exp = goldmaster.slice(pos - 50, 100)
    context_act = @writer.data.slice(pos - 50, 100)
    
    assert_equal @writer.data, goldmaster, "First difference at #{pos} bytes into goldmaster:\n(#{context_exp}) goldmaster vs\n(#{context_act}) actual"
  end

end

#test_specObject



29
30
31
# File 'lib/goldmaster_test_case.rb', line 29

def test_spec
  trivial
end

#writerObject



33
34
35
# File 'lib/goldmaster_test_case.rb', line 33

def writer
  Concordion::Writer.new
end