Sha256: 8b843c99914d6c628bf767868a970f87f2154df8990938f69e288c2604b36965

Contents?: true

Size: 1.75 KB

Versions: 103

Compression:

Stored size: 1.75 KB

Contents

require_relative '../test_helper'

module Generator
  module Files
    class ReadableTest < Minitest::Test
      def test_abbreviated_commit_hash
        mock_git_command = Minitest::Mock.new.expect :call, nil, ['path/.git', 'subdir/file']
        subject = Readable.new(filename: 'path/subdir/file', repository_root: 'path')
        GitCommand.stub(:abbreviated_commit_hash, mock_git_command) do
          subject.abbreviated_commit_hash
        end
        mock_git_command.verify
      end
    end

    class WritableTest < Minitest::Test
      class TestWritableDoesntCallWrite < Writable
        private

        def write(_content)
          fail StandardError, 'write should not be called'
        end
      end

      def test_save_if_unchanged
        content = ''
        subject = TestWritableDoesntCallWrite.new(filename: '/dev/null')
        assert_equal(content, subject.save(content))
      end

      def test_save_if_changed
        mock_writer = Minitest::Mock.new
        content = 'new content'
        mock_writer.expect :write, content.size, [content]
        subject = Writable.new(filename: '/dev/null')
        File.stub :open, nil, mock_writer do
          assert_equal(content, subject.save(content))
        end
        mock_writer.verify
      end
    end

    class ExerciseTest < Minitest::Test
      class TestNotImplementedTrackFiles
        include Exercise
      end

      def test_paths_not_implemented
        subject = TestNotImplementedTrackFiles.new
        assert_raises NotImplementedError do
          subject.paths
        end
      end

      def test_exercise_name_not_implemented
        subject = TestNotImplementedTrackFiles.new
        assert_raises NotImplementedError do
          subject.exercise_name
        end
      end
    end
  end
end

Version data entries

103 entries across 103 versions & 1 rubygems

Version Path
trackler-2.1.0.4 tracks/ruby/test/generator/files_test.rb
trackler-2.1.0.3 tracks/ruby/test/generator/files_test.rb
trackler-2.1.0.2 tracks/ruby/test/generator/files_test.rb
trackler-2.1.0.1 tracks/ruby/test/generator/files_test.rb
trackler-2.1.0.0 tracks/ruby/test/generator/files_test.rb
trackler-2.0.8.55 tracks/ruby/test/generator/files_test.rb
trackler-2.0.8.54 tracks/ruby/test/generator/files_test.rb
trackler-2.0.8.53 tracks/ruby/test/generator/files_test.rb
trackler-2.0.8.52 tracks/ruby/test/generator/files_test.rb
trackler-2.0.8.51 tracks/ruby/test/generator/files_test.rb
trackler-2.0.8.50 tracks/ruby/test/generator/files_test.rb
trackler-2.0.8.49 tracks/ruby/test/generator/files_test.rb
trackler-2.0.8.48 tracks/ruby/test/generator/files_test.rb
trackler-2.0.8.47 tracks/ruby/test/generator/files_test.rb
trackler-2.0.8.46 tracks/ruby/test/generator/files_test.rb
trackler-2.0.8.45 tracks/ruby/test/generator/files_test.rb
trackler-2.0.8.44 tracks/ruby/test/generator/files_test.rb
trackler-2.0.8.43 tracks/ruby/test/generator/files_test.rb
trackler-2.0.8.42 tracks/ruby/test/generator/files_test.rb
trackler-2.0.8.41 tracks/ruby/test/generator/files_test.rb