require 'spec_helper' SimpleCov.command_name('Directory') unless RUBY_VERSION.to_s < '1.9.0' describe 'Directory, Unit' do clazz = CucumberAnalytics::Directory it_should_behave_like 'a nested element', clazz it_should_behave_like 'a containing element', clazz it_should_behave_like 'a bare bones element', clazz it_should_behave_like 'a prepopulated element', clazz before(:each) do @directory = clazz.new end it 'cannot model a non-existent directory' do path = "#{DEFAULT_FILE_DIRECTORY}/missing_directory" expect { CucumberAnalytics::Directory.new(path) }.to raise_error(ArgumentError) end it 'knows the name of the directory that it is modeling' do path = "#{DEFAULT_FILE_DIRECTORY}" directory = CucumberAnalytics::Directory.new(path) directory.name.should == 'temp_files' end it 'knows the path of the directory that it is modeling' do path = "#{DEFAULT_FILE_DIRECTORY}" directory = CucumberAnalytics::Directory.new(path) directory.path.should == path end it 'has feature files - #feature_files' do @directory.should respond_to(:feature_files) end it 'can get and set its feature files - #feature_files, #feature_files=' do @directory.feature_files = :some_feature_files @directory.feature_files.should == :some_feature_files @directory.feature_files = :some_other_feature_files @directory.feature_files.should == :some_other_feature_files end it 'knows how many feature files it has - #feature_file_count' do @directory.feature_files = [:file_1, :file_2, :file_3] @directory.feature_file_count.should == 3 end it 'has directories - #directories' do @directory.should respond_to(:directories) end it 'can get and set its directories - #directories, #directories=' do @directory.directories = :some_directories @directory.directories.should == :some_directories @directory.directories = :some_other_directories @directory.directories.should == :some_other_directories end it 'knows how many directories it has - #directory_count' do @directory.directories = [:directory_1, :directory_2, :directory_3] @directory.directory_count.should == 3 end it 'starts with no feature files or directories' do @directory.feature_files.should == [] @directory.directories.should == [] end it 'contains feature files and directories' do directories = [:directory_1, :directory_2, :directory_3] files = [:file_1, :file_2, :file_3] everything = files + directories @directory.directories = directories @directory.feature_files = files @directory.contains.should =~ everything end end