File: test_faker_markdown.rb

package info (click to toggle)
ruby-faker 3.6.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 11,596 kB
  • sloc: ruby: 20,656; sh: 6; makefile: 6
file content (106 lines) | stat: -rw-r--r-- 2,501 bytes parent folder | download
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
# frozen_string_literal: true

require_relative '../../test_helper'

class TestFakerMarkdown < Test::Unit::TestCase
  def setup
    @tester = Faker::Markdown
    @random_method = random_method
  end

  def test_headers
    test_trigger = @tester.headers.split

    assert_equal(2, test_trigger.length)
    assert_includes(test_trigger.first, '#')
  end

  def test_emphasis
    test_trigger = @tester.emphasis.chars

    assert(test_trigger.to_set.intersect?(['_', '~', '*', '**'].to_set))
  end

  def test_ordered_list
    test_trigger = @tester.ordered_list.split("\n")

    test_trigger.each do |line|
      assert_instance_of(Integer, line[0].to_i)
    end
  end

  def test_unordered_list
    test_trigger = @tester.unordered_list.split("\n")

    test_trigger.each do |line|
      assert_equal('*', line[0])
    end
  end

  def test_inline_code
    test_trigger = @tester.inline_code.chars

    assert_equal('`', test_trigger.first)
    assert_equal('`', test_trigger.last)
  end

  def test_block_code
    test_trigger = @tester.block_code.chars

    assert_equal('`', test_trigger[0])
    assert_equal('`', test_trigger[1])
    assert_equal('`', test_trigger[2])
    assert_equal('`', test_trigger[-1])
    assert_equal('`', test_trigger[-2])
    assert_equal('`', test_trigger[-3])
  end

  def test_table
    test_trigger = @tester.table.split("\n")

    test_trigger.each do |table_data|
      assert_instance_of(String, table_data)
    end

    assert_equal(4, test_trigger.length)
    assert_equal('---- | ---- | ----', test_trigger[1])
  end

  def test_random
    test_trigger = @tester.random

    assert_instance_of(String, test_trigger)
  end

  def test_random_with_a_randomly_excluded_method
    excluded_method = @random_method
    test_trigger = @tester.random(excluded_method)

    20.times do
      refute_equal(test_trigger, @tester.send(excluded_method))
    end
  end

  def test_sandwich
    test_trigger = @tester.sandwich

    test_array = []
    test_trigger.each_line { |substr| test_array << substr }

    assert_operator(test_array.length, :>=, 3)

    assert_equal(2, test_array[0].split.length)
    assert_includes(test_array[0].split.first, '#')

    assert_instance_of(String, test_array[0])
    assert_instance_of(String, test_array[1])
    assert_instance_of(String, test_array[2])
  end

  private

  def random_method
    method_list = Faker::Markdown.public_methods(false) - Faker::Base.methods
    method_list[rand(0..(method_list.length - 1))]
  end
end