1+ require 'spec_helper'
2+
3+ describe 'Security' do
4+
5+ context 'Facility access requests' do
6+ before do
7+ @current_time = 'late'
8+ SecurityLogger . should_receive ( :log_event )
9+ end
10+
11+ context 'for a user with access' do
12+ before do
13+ @user = User . new ( :access => true )
14+ end
15+
16+ it 'should grant user access level' do
17+ @user . should have_access
18+ end
19+ end
20+
21+ context 'for a user without access' do
22+ before do
23+ @user = User . new ( :access => false )
24+ end
25+ it 'should not grant acess' do
26+ @user . should_not have_access
27+ end
28+ end
29+
30+
31+ end
32+
33+ context 'Elevator Access' do
34+
35+ context 'when it is late' do
36+
37+ before do
38+ @current_time = 'not business hours'
39+ @user_with_permission = User . new ( :permission => true )
40+ @user_without_permission = User . new ( :permission => false )
41+ end
42+
43+ it 'should validate access level to user with permission' do
44+ validated = Security ::Elevator . validate ( @user_with_permission , @current_time )
45+ validated . should == true
46+ end
47+
48+ it 'should not validate access level' do
49+ validated = Security ::Elevator . validate ( @user_without_permission , @current_time )
50+ validated . should == false
51+ end
52+ end
53+
54+ context 'when it\'s not late' do
55+
56+ before do
57+ @current_time = 'business hours'
58+ @user_with_permission = User . new ( :permission => true )
59+ @user_without_permission = User . new ( :permission => false )
60+ end
61+
62+ it 'should grant full elevator access' do
63+ validated = Security ::Elevator . validate ( @user_without_permission , @current_time )
64+ validated . should == true
65+ validated = Security ::Elevator . validate ( @user_with_permission , @current_time )
66+
67+ validated . should == true
68+ end
69+ end
70+ end
71+
72+ context 'Office Access' do
73+ before do
74+ end
75+ it 'should validate employee acess'
76+ end
77+
78+ context 'Lockdown Mode' do
79+ before do
80+ Security ::Elevator . locked = true
81+ end
82+
83+ it 'Should Secure all Elevators' do
84+ Security ::Elevator . locked . should == true
85+ end
86+ end
87+
88+ end
0 commit comments