namespace :acceptance do
  ARTIFACT_DIR = File.join('acceptance', 'artifacts')
  TEST_BOXES = {
    'centos-virtualbox.box' => 'https://s3.amazonaws.com/puppetlabs-vagrantcloud/centos-7.2-x86_64-virtualbox-nocm-1.0.1.box',
    'ubuntu-virtualbox.box' => 'https://s3.amazonaws.com/puppetlabs-vagrantcloud/ubuntu-14.04-x86_64-virtualbox-nocm-1.0.3.box'
  }

  directory ARTIFACT_DIR
  TEST_BOXES.each do |box, box_url|
    file File.join(ARTIFACT_DIR, box) => ARTIFACT_DIR do |path|
      puts 'Downloading: ' + box_url
      Kernel.system 'curl', '-L', '-o', path.to_s, box_url
    end
  end

  desc 'downloads test boxes and other artifacts'
  task :setup => TEST_BOXES.map {|box, _| File.join(ARTIFACT_DIR, box)}

  desc 'runs acceptance tests'
  task :run => :setup do
    command = 'vagrant-spec test'
    puts command
    puts
    exec(command)
  end
end
