require "#{File.dirname(__FILE__)}/../spec_helper"
describe Bonsai::Generate do
  describe "generator" do
    before :all do
      @path = File.expand_path("spec/tmp-generator")
      FileUtils.rm_rf @path
      Bonsai::Generate.new(@path)
    end
    
    it "should create base directories" do
      %w(content content/index templates public public/css public/js).each do |dir|
        File.directory?("#{@path}/#{dir}").should be_true
      end
    end
    
    it "should copy the htaccess file to public/.htaccess" do
      File.exists?("#{@path}/public/.htaccess").should be_true
    end
    
    it "should copy the base.scss file" do
      File.exists?("#{@path}/public/css/base.scss").should be_true
    end
    
    it "should copy an index page" do
      File.exists?("#{@path}/content/index/default.yml").should be_true
    end
    
    it "should copy a default template" do
      File.exists?("#{@path}/templates/default.liquid").should be_true
    end
    
    it "should create a robots.txt" do
      File.exists?("#{@path}/public/robots.txt").should be_true
    end
    
    it "should create a site.yml" do
      File.exists?("#{@path}/site.yml").should be_true
    end
    
    it "should generate 22 files" do
      Dir.glob("#{@path}/**/*", File::FNM_DOTMATCH).select{|f| File.file?(f) }.size.should == 22
    end
    
    it "should generate 14 directories" do
      Dir.glob("#{@path}/**/*").select{|f| File.directory?(f) }.size.should == 14
    end
  end
end