File: minitest_hooks_test.rb

package info (click to toggle)
ruby-minitest-hooks 1.5.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 156 kB
  • sloc: ruby: 600; makefile: 4
file content (120 lines) | stat: -rw-r--r-- 2,701 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
require './spec/helper'
require 'minitest/hooks/test'

class MyTest < Minitest::Test
  include Minitest::Hooks
end

class TestMinitestHooks < MyTest
  DB = Sequel.connect(DATABASE_URL)

  def before_all
    super
    @ds_ba = @ds_aa
    assert_equal @ds_ba.count, 1 + @i
  end
  def setup
    super
    @ds_be = @ds_ae
    assert_equal @ds_be.count, 2 + @i * 2
  end
  def teardown
    assert_equal @ds_be.count, 2 + @i * 2
    super
  end
  def after_all
    assert_equal @ds_ba.count, 1 + @i
    super
  end
  def around
    assert_equal @ds_aa.count, 1 + @i
    DB.transaction(:rollback=>:always, :savepoint=>true, :auto_savepoint=>true) do
      @ds_ae = @ds_aa
      @ds_ae.insert(1)
      super
    end
    assert_equal @ds_aa.count, 1 + @i
  end
  def around_all
    @i ||= 0
    DB.transaction(:rollback=>:always) do
      DB.create_table(:a){Integer :a}
      @ds_aa = DB[:a]
      assert_equal @ds_aa.count, 0
      @ds_aa.insert(1)
      super
    end
    assert_equal DB.table_exists?(:a), false
  end

  3.times do |i|
    define_method(:"test_should_work_#{i}") do
      assert_equal @ds_aa.count, 2
      assert_equal @ds_ae.count, 2
      assert_equal @ds_ba.count, 2
      assert_equal @ds_be.count, 2
    end
  end

  class TestMinitestHooks2 < self
    def before_all
      super
      @ds_ba3 = @ds_ba
      @ds_ba2 = @ds_aa2
      assert_equal @ds_ba2.count, 2
    end
    def setup
      super
      @ds_be3 = @ds_be
      @ds_be2 = @ds_ae2
      assert_equal @ds_be2.count, 4
    end
    def teardown
      assert_equal @ds_be2.count, 4
      super
    end
    def after_all
      assert_equal @ds_ba2.count, 2
      super
    end
    def around
      assert_equal @ds_aa.count, 2
      super do
        assert_equal @ds_aa.count, 3
        @ds_ae3 = @ds_ae
        @ds_ae2 = @ds_aa2
        @ds_ae2.insert(1)
        yield
        assert_equal @ds_aa.count, 4
      end
      assert_equal @ds_aa.count, 2
    end
    def around_all
      @i ||= 1
      super do
        assert_equal @ds_aa.count, 1
        @ds_aa2 = @ds_aa
        @ds_aa2.insert(1)
        yield
        assert_equal @ds_aa.count, 2
      end
      assert_equal DB.table_exists?(:a), false
    end

    3.times do |i|
      define_method(:"test_should_work_#{i}") do
        assert_equal @ds_aa.count, 4
        assert_equal @ds_ae.count, 4
        assert_equal @ds_ba.count, 4
        assert_equal @ds_be.count, 4
        assert_equal @ds_aa2.count, 4
        assert_equal @ds_ae2.count, 4
        assert_equal @ds_ba2.count, 4
        assert_equal @ds_be2.count, 4
        assert_equal @ds_ae3.count, 4
        assert_equal @ds_ba3.count, 4
        assert_equal @ds_be3.count, 4
      end
    end
  end
end