Sha256: 02a9cdabcb9c22a17f9e8003bef1e4a81083248b4a83b08f0aed0745637948d9

Contents?: true

Size: 1.86 KB

Versions: 7

Compression:

Stored size: 1.86 KB

Contents

# encoding: utf-8

class Nanoc::Extra::Deployers::RsyncTest < Nanoc::TestCase

  def test_run_without_dst
    # Create deployer
    rsync = Nanoc::Extra::Deployers::Rsync.new(
      'output/',
      {})

    # Mock run_shell_cmd
    def rsync.run_shell_cmd(args)
      @shell_cms_args = args
    end

    # Try running
    error = assert_raises(RuntimeError) do
      rsync.run
    end

    # Check error message
    assert_equal 'No dst found in deployment configuration', error.message
  end

  def test_run_with_erroneous_dst
    # Create deployer
    rsync = Nanoc::Extra::Deployers::Rsync.new(
      'output/',
      { :dst => 'asdf/' })

    # Mock run_shell_cmd
    def rsync.run_shell_cmd(args)
      @shell_cms_args = args
    end

    # Try running
    error = assert_raises(RuntimeError) do
      rsync.run
    end

    # Check error message
    assert_equal 'dst requires no trailing slash', error.message
  end

  def test_run_everything_okay
    # Create deployer
    rsync = Nanoc::Extra::Deployers::Rsync.new(
      'output',
      { :dst => 'asdf' })

    # Mock run_shell_cmd
    def rsync.run_shell_cmd(args)
      @shell_cms_args = args
    end

    # Run
    rsync.run

    # Check args
    opts = Nanoc::Extra::Deployers::Rsync::DEFAULT_OPTIONS
    assert_equal(
      [ 'rsync', opts, 'output/', 'asdf' ].flatten,
      rsync.instance_eval { @shell_cms_args }
    )
  end

  def test_run_everything_okay_dry
    # Create deployer
    rsync = Nanoc::Extra::Deployers::Rsync.new(
      'output',
      { :dst => 'asdf' },
      :dry_run => true)

    # Mock run_shell_cmd
    def rsync.run_shell_cmd(args)
      @shell_cms_args = args
    end

    # Run
    rsync.run

    # Check args
    opts = Nanoc::Extra::Deployers::Rsync::DEFAULT_OPTIONS
    assert_equal(
      [ 'echo', 'rsync', opts, 'output/', 'asdf' ].flatten,
      rsync.instance_eval { @shell_cms_args }
    )
  end

end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
nanoc-3.7.3 test/extra/deployers/test_rsync.rb
nanoc-3.7.2 test/extra/deployers/test_rsync.rb
nanoc-3.7.1 test/extra/deployers/test_rsync.rb
nanoc-3.7.0 test/extra/deployers/test_rsync.rb
nanoc-3.6.11 test/extra/deployers/test_rsync.rb
nanoc-3.6.10 test/extra/deployers/test_rsync.rb
nanoc-3.6.9 test/extra/deployers/test_rsync.rb