Sha256: 3607f9b9ffd397a2e094e4696a49cd155394273e3baa827c22ffddc5ac8d398a

Contents?: true

Size: 1.37 KB

Versions: 1

Compression:

Stored size: 1.37 KB

Contents

require 'pwm'

describe Pwm do
  context 'The default set of characters' do
    it 'includes all upper-case letters except I and O' do
      (('A'..'Z').to_a - ['I', 'O']).each do |letter|
        Pwm.characters.should include(letter)
      end
    end
    it 'includes all lower-case letters except l' do
      (('a'..'z').to_a - ['l']).each do |letter|
        Pwm.characters.should include(letter)
      end
    end
    it 'includes all digits 2 through 9' do
      ('2'..'9').each do |letter|
        Pwm.characters.should include(letter)
      end
    end
    it 'does not include I, O, l, 0, or 1' do
      %w(I O l 0 1).each do |letter|
        Pwm.characters.should_not include(letter)
      end
    end
  end

  context 'The password method' do
    context 'when given a length' do
      it 'generates a password of that length' do
        Pwm.password(8).length.should == 8
      end
    end
    context 'when not given a length' do
      it 'generates a 16-character password' do
        Pwm.password.length.should == 16
      end
    end
    context 'generates passwords containing' do
      it 'at least one upper-case letter' do
        Pwm.password.should match(/[A-Z]/)
      end
      it 'at least one lower-case letter' do
        Pwm.password.should match(/[a-z]/)
      end
      it 'at least one number' do
        Pwm.password.should match(/[2-9]/)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pwm-1.1.0 spec/pwm_spec.rb