Sha256: feeb652c57d3e9b23de199e5c6b7226c689dd5f15f3f599625065329fb0fc894

Contents?: true

Size: 1.79 KB

Versions: 47

Compression:

Stored size: 1.79 KB

Contents

require 'spec_helper'
require 'ostruct'

module RSpec
  module Fixtures
    class Animal
      def initialize(name,species)
        @name,@species = name,species
      end

      def inspect
        <<-EOA
<Animal
  name=#{@name},
  species=#{@species}
>
        EOA
      end
    end
  end
end

describe "Diff" do
  before(:each) do
    @options = OpenStruct.new(:diff_format => :unified, :context_lines => 3)
    @differ = RSpec::Expectations::Differ.new(@options)
  end

  it "outputs unified diff of two strings" do
    expected="foo\nbar\nzap\nthis\nis\nsoo\nvery\nvery\nequal\ninsert\na\nline\n"
    actual="foo\nzap\nbar\nthis\nis\nsoo\nvery\nvery\nequal\ninsert\na\nanother\nline\n"
    expected_diff= <<'EOD'


@@ -1,6 +1,6 @@
 foo
-zap
 bar
+zap
 this
 is
 soo
@@ -9,6 +9,5 @@
 equal
 insert
 a
-another
 line
EOD

    diff = @differ.diff_as_string(expected, actual)
    diff.should eql(expected_diff)
  end

  it "outputs unified diff message of two arrays" do
    expected = [ :foo, 'bar', :baz, 'quux', :metasyntactic, 'variable', :delta, 'charlie', :width, 'quite wide' ]
    actual   = [ :foo, 'bar', :baz, 'quux', :metasyntactic, 'variable', :delta, 'tango'  , :width, 'very wide'  ]

    expected_diff = <<'EOD'


@@ -5,7 +5,7 @@
  :metasyntactic,
  "variable",
  :delta,
- "tango",
+ "charlie",
  :width,
- "very wide"]
+ "quite wide"]
EOD


    diff = @differ.diff_as_object(expected,actual)
    diff.should == expected_diff
  end

  it "outputs unified diff message of two objects" do
    expected = RSpec::Fixtures::Animal.new "bob", "giraffe"
    actual   = RSpec::Fixtures::Animal.new "bob", "tortoise"

    expected_diff = <<'EOD'

@@ -1,5 +1,5 @@
 <Animal
   name=bob,
-  species=tortoise
+  species=giraffe
 >
EOD

    diff = @differ.diff_as_object(expected,actual)
    diff.should == expected_diff
  end

end

Version data entries

47 entries across 47 versions & 6 rubygems

Version Path
horseman-0.0.4 vendor/ruby/1.9.1/gems/rspec-expectations-2.7.0/spec/rspec/expectations/differ_spec.rb
horseman-0.0.3 vendor/ruby/1.9.1/gems/rspec-expectations-2.7.0/spec/rspec/expectations/differ_spec.rb
horseman-0.0.2 vendor/ruby/1.9.1/gems/rspec-expectations-2.7.0/spec/rspec/expectations/differ_spec.rb
nutshell-crm-0.0.6.alpha vendor/bundle/gems/rspec-expectations-2.7.0/spec/rspec/expectations/differ_spec.rb
rspec-expectations-2.8.0.rc2 spec/rspec/expectations/differ_spec.rb
nutshell-crm-0.0.5 vendor/bundle/gems/rspec-expectations-2.7.0/spec/rspec/expectations/differ_spec.rb
nutshell-crm-0.0.4 vendor/bundle/gems/rspec-expectations-2.7.0/spec/rspec/expectations/differ_spec.rb
nutshell-crm-0.0.3 vendor/bundle/gems/rspec-expectations-2.7.0/spec/rspec/expectations/differ_spec.rb
nutshell-crm-0.0.2 vendor/bundle/gems/rspec-expectations-2.7.0/spec/rspec/expectations/differ_spec.rb
nutshell-crm-0.0.1 vendor/bundle/gems/rspec-expectations-2.7.0/spec/rspec/expectations/differ_spec.rb
rspec-expectations-2.8.0.rc1 spec/rspec/expectations/differ_spec.rb
rspec-expectations-2.7.0 spec/rspec/expectations/differ_spec.rb
rspec-expectations-2.7.0.rc1 spec/rspec/expectations/differ_spec.rb
messagebus_ruby_api-0.4.7 spec/ruby/1.9.1/gems/rspec-expectations-2.5.0/spec/rspec/expectations/differ_spec.rb
messagebus_ruby_api-0.4.4 spec/ruby/1.9.1/gems/rspec-expectations-2.5.0/spec/rspec/expectations/differ_spec.rb
rspec-expectations-2.6.0 spec/rspec/expectations/differ_spec.rb
rspec-expectations-2.6.0.rc6 spec/rspec/expectations/differ_spec.rb
rspec-expectations-2.6.0.rc4 spec/rspec/expectations/differ_spec.rb
rspec-expectations-2.6.0.rc2 spec/rspec/expectations/differ_spec.rb
rspec-expectations-2.5.0 spec/rspec/expectations/differ_spec.rb