enju_inter_library_loan 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.rdoc +3 -0
  3. data/Rakefile +45 -0
  4. data/app/controllers/inter_library_loans_controller.rb +125 -0
  5. data/app/models/inter_library_loan.rb +111 -0
  6. data/app/views/inter_library_loans/edit.html.erb +149 -0
  7. data/app/views/inter_library_loans/index.atom.builder +11 -0
  8. data/app/views/inter_library_loans/index.html.erb +50 -0
  9. data/app/views/inter_library_loans/index.rss.builder +31 -0
  10. data/app/views/inter_library_loans/new.html.erb +42 -0
  11. data/app/views/inter_library_loans/show.html.erb +58 -0
  12. data/config/locales/translation_en.yml +20 -0
  13. data/config/locales/translation_ja.yml +20 -0
  14. data/config/routes.rb +6 -0
  15. data/db/migrate/148_create_inter_library_loans.rb +23 -0
  16. data/lib/enju_inter_library_loan.rb +4 -0
  17. data/lib/enju_inter_library_loan/engine.rb +13 -0
  18. data/lib/enju_inter_library_loan/version.rb +3 -0
  19. data/lib/tasks/enju_inter_library_loan_tasks.rake +4 -0
  20. data/spec/controllers/inter_library_loans_controller_spec.rb +185 -0
  21. data/spec/dummy/Rakefile +7 -0
  22. data/spec/dummy/app/assets/javascripts/application.js +9 -0
  23. data/spec/dummy/app/assets/stylesheets/application.css +7 -0
  24. data/spec/dummy/app/controllers/application_controller.rb +71 -0
  25. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  26. data/spec/dummy/app/models/ability.rb +12 -0
  27. data/spec/dummy/app/models/item.rb +7 -0
  28. data/spec/dummy/app/models/library.rb +128 -0
  29. data/spec/dummy/app/models/library_group.rb +86 -0
  30. data/spec/dummy/app/models/manifestation.rb +6 -0
  31. data/spec/dummy/app/models/patron.rb +167 -0
  32. data/spec/dummy/app/models/patron_type.rb +19 -0
  33. data/spec/dummy/app/models/role.rb +5 -0
  34. data/spec/dummy/app/models/shelf.rb +54 -0
  35. data/spec/dummy/app/models/user.rb +27 -0
  36. data/spec/dummy/app/models/user_has_role.rb +4 -0
  37. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  38. data/spec/dummy/app/views/page/403.html.erb +9 -0
  39. data/spec/dummy/app/views/page/403.mobile.erb +5 -0
  40. data/spec/dummy/app/views/page/403.xml.erb +4 -0
  41. data/spec/dummy/app/views/page/404.html.erb +9 -0
  42. data/spec/dummy/app/views/page/404.mobile.erb +5 -0
  43. data/spec/dummy/app/views/page/404.xml.erb +4 -0
  44. data/spec/dummy/config.ru +4 -0
  45. data/spec/dummy/config/application.rb +47 -0
  46. data/spec/dummy/config/boot.rb +10 -0
  47. data/spec/dummy/config/database.yml +25 -0
  48. data/spec/dummy/config/environment.rb +5 -0
  49. data/spec/dummy/config/environments/development.rb +30 -0
  50. data/spec/dummy/config/environments/production.rb +60 -0
  51. data/spec/dummy/config/environments/test.rb +39 -0
  52. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  53. data/spec/dummy/config/initializers/devise.rb +209 -0
  54. data/spec/dummy/config/initializers/inflections.rb +10 -0
  55. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  56. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  57. data/spec/dummy/config/initializers/session_store.rb +8 -0
  58. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  59. data/spec/dummy/config/locales/en.yml +5 -0
  60. data/spec/dummy/config/routes.rb +60 -0
  61. data/spec/dummy/db/migrate/001_create_patrons.rb +62 -0
  62. data/spec/dummy/db/migrate/005_create_manifestations.rb +68 -0
  63. data/spec/dummy/db/migrate/006_create_items.rb +36 -0
  64. data/spec/dummy/db/migrate/059_create_libraries.rb +34 -0
  65. data/spec/dummy/db/migrate/069_create_shelves.rb +19 -0
  66. data/spec/dummy/db/migrate/080_create_library_groups.rb +25 -0
  67. data/spec/dummy/db/migrate/20080905191442_create_patron_types.rb +16 -0
  68. data/spec/dummy/db/migrate/20100211105551_add_admin_networks_to_library_group.rb +9 -0
  69. data/spec/dummy/db/migrate/20100222124420_add_allow_bookmark_external_url_to_library_group.rb +9 -0
  70. data/spec/dummy/db/migrate/20110115022329_add_position_to_library_group.rb +9 -0
  71. data/spec/dummy/db/migrate/20110222073537_add_url_to_library_group.rb +9 -0
  72. data/spec/dummy/db/migrate/20111020063828_remove_dsbl_from_library_group.rb +11 -0
  73. data/spec/dummy/db/migrate/20111201121844_create_roles.rb +12 -0
  74. data/spec/dummy/db/migrate/20111201155456_create_users.rb +13 -0
  75. data/spec/dummy/db/migrate/20111201155513_add_devise_to_users.rb +31 -0
  76. data/spec/dummy/db/migrate/20111201163718_create_user_has_roles.rb +10 -0
  77. data/spec/dummy/db/schema.rb +289 -0
  78. data/spec/dummy/db/test.sqlite3 +0 -0
  79. data/spec/dummy/lib/master_model.rb +41 -0
  80. data/spec/dummy/lib/url_validator.rb +10 -0
  81. data/spec/dummy/log/test.log +5034 -0
  82. data/spec/dummy/public/404.html +26 -0
  83. data/spec/dummy/public/422.html +26 -0
  84. data/spec/dummy/public/500.html +26 -0
  85. data/spec/dummy/public/favicon.ico +0 -0
  86. data/spec/dummy/script/rails +6 -0
  87. data/spec/factories/inter_library_loan.rb +6 -0
  88. data/spec/factories/item.rb +7 -0
  89. data/spec/factories/library.rb +13 -0
  90. data/spec/factories/manifestation.rb +5 -0
  91. data/spec/factories/user.rb +31 -0
  92. data/spec/fixtures/inter_library_loans.yml +84 -0
  93. data/spec/fixtures/libraries.yml +108 -0
  94. data/spec/fixtures/library_groups.yml +34 -0
  95. data/spec/fixtures/patron_types.yml +35 -0
  96. data/spec/fixtures/patrons.yml +338 -0
  97. data/spec/fixtures/roles.yml +21 -0
  98. data/spec/fixtures/user_has_roles.yml +41 -0
  99. data/spec/fixtures/users.yml +69 -0
  100. data/spec/models/inter_library_loan_spec.rb +26 -0
  101. data/spec/spec_helper.rb +46 -0
  102. data/spec/support/controller_macros.rb +48 -0
  103. data/spec/support/devise.rb +4 -0
  104. metadata +386 -0
@@ -0,0 +1,11 @@
1
+ atom_feed(:url => inter_library_loans_url(:format => :atom)) do |feed|
2
+ feed.title t('inter_library_loan.library_group_inter_library_loan', :library_group_name => @library_group.display_name.localize)
3
+ feed.updated(@inter_library_loans.first ? @inter_library_loans.first.created_at : Time.zone.now)
4
+
5
+ @inter_library_loans.each do |inter_library_loan|
6
+ feed.entry(inter_library_loan) do |entry|
7
+ entry.title inter_library_loan.item.manifestation.original_title
8
+ entry.author(@library_group.display_name.localize)
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,50 @@
1
+ <div id="content_detail" class="ui-corner-all">
2
+ <h1 class="title"><%= t('page.listing', :model => t('activerecord.models.inter_library_loan')) -%></h1>
3
+ <div id="content_list">
4
+ <table class="index">
5
+ <tr>
6
+ <th><%= t('activerecord.models.item') -%></th>
7
+ <th><%= t('activerecord.models.library') -%></th>
8
+ <th><%= t('inter_library_loan.borrowing_library') -%></th>
9
+ <th>
10
+ <%= t('activerecord.attributes.inter_library_loan.shipped_at') -%> /
11
+ <%= t('activerecord.attributes.inter_library_loan.received_at') -%>
12
+ </th>
13
+ <th></th>
14
+ </tr>
15
+
16
+ <%- @inter_library_loans.each do |inter_library_loan| -%>
17
+ <tr class="line<%= cycle("0", "1") -%>">
18
+ <td>
19
+ <%= link_to inter_library_loan.item.item_identifier, inter_library_loan.item -%>
20
+ <br />
21
+ (<%= link_to inter_library_loan.item.manifestation.original_title, inter_library_loan.item.manifestation -%>)
22
+ </td>
23
+ <td><%= link_to inter_library_loan.item.shelf.library.display_name.localize, inter_library_loan.item.shelf.library -%></td>
24
+ <td><%= link_to inter_library_loan.borrowing_library.display_name.localize, inter_library_loan.borrowing_library -%></td>
25
+ <td>
26
+ <%= l(inter_library_loan.shipped_at) if inter_library_loan.shipped_at -%><br />
27
+ <%= l(inter_library_loan.received_at) if inter_library_loan.received_at -%>
28
+ </td>
29
+ <%- if can? :destroy, inter_library_loan -%>
30
+ <td>
31
+ <%= link_to t('page.show'), inter_library_loan -%>
32
+ <%= link_to t('page.edit'), edit_inter_library_loan_path(inter_library_loan) -%>
33
+ <%= link_to t('page.destroy'), inter_library_loan, :confirm => t('page.are_you_sure'), :method => :delete -%>
34
+ </td>
35
+ <%- end -%>
36
+ </tr>
37
+ <%- end -%>
38
+ </table>
39
+
40
+ <%= will_paginate(@inter_library_loans) -%>
41
+ </div>
42
+ </div>
43
+
44
+ <div id="submenu" class="ui-corner-all">
45
+ <ul>
46
+ <%- if can? :create, InterLibraryLoan -%>
47
+ <li><%= link_to t('page.new', :model => t('activerecord.models.inter_library_loan')), new_inter_library_loan_path -%></li>
48
+ <%- end -%>
49
+ </ul>
50
+ </div>
@@ -0,0 +1,31 @@
1
+ xml.instruct! :xml, :version=>"1.0"
2
+ xml.rss('version' => "2.0",
3
+ 'xmlns:opensearch' => "http://a9.com/-/spec/opensearch/1.1/",
4
+ 'xmlns:atom' => "http://www.w3.org/2005/Atom"){
5
+ xml.channel{
6
+ xml.title t('inter_library_loan.library_group_inter_library_loan', :library_group_name => @library_group.display_name.localize)
7
+ xml.link inter_library_loans_url
8
+ xml.description "Next-L Enju, an open source integrated library system developed by Project Next-L"
9
+ xml.language @locale.to_s
10
+ xml.ttl "60"
11
+ xml.tag! "atom:link", :rel => 'self', :href => inter_library_loans_url(:format => :rss)
12
+ xml.tag! "atom:link", :rel => 'alternate', :href => inter_library_loans_url
13
+ #xml.tag! "atom:link", :rel => 'search', :type => 'application/opensearchdescription+xml', :href => "http://#{request.host_with_port}/page/opensearch"
14
+ #unless params[:query].blank?
15
+ # xml.tag! "opensearch:totalResults", @count[:query_result]
16
+ # xml.tag! "opensearch:startIndex", @inter_library_loans.offset + 1
17
+ # xml.tag! "opensearch:itemsPerPage", @inter_library_loans.per_page
18
+ #xml.tag! "opensearch:Query", :role => 'request', :searchTerms => params[:query], :startPage => (params[:page] || 1)
19
+ #end
20
+ @inter_library_loans.each do |inter_library_loan|
21
+ xml.item do
22
+ xml.title inter_library_loan.item.manifestation.original_title
23
+ #xml.description(inter_library_loan.title)
24
+ # rfc822
25
+ xml.pubDate inter_library_loan.created_at.utc.rfc822
26
+ xml.link inter_library_loan_url(inter_library_loan)
27
+ xml.guid inter_library_loan_url(inter_library_loan), :isPermaLink => "true"
28
+ end
29
+ end
30
+ }
31
+ }
@@ -0,0 +1,42 @@
1
+ <div id="content_detail" class="ui-corner-all">
2
+ <h1 class="title"><%= t('page.new', :model => t('activerecord.models.inter_library_loan')) -%></h1>
3
+ <div id="content_list">
4
+
5
+ <%= form_for(@inter_library_loan) do |f| -%>
6
+ <%= f.error_messages -%>
7
+
8
+ <div class="field">
9
+ <%= f.label t('inter_library_loan.borrowing_library') -%><br />
10
+ <%= f.select(:borrowing_library_id, @libraries.collect{|l| [l.display_name.localize, l.id]}) -%>
11
+ </div>
12
+
13
+ <div class="field">
14
+ <%= f.label :requested_at -%><br />
15
+ <%= f.text_field :requested_at, :class => 'date_field' -%>
16
+ </div>
17
+
18
+ <div class="field">
19
+ <%= f.label t('activerecord.models.item') -%><br />
20
+ <%- if @item -%>
21
+ <%= link_to @item.shelf.library.display_name.localize, @item.shelf.library -%>
22
+ <%= link_to @item.item_identifier, @item -%>
23
+ (<%= link_to @item.manifestation.original_title, @item.manifestation -%>)
24
+ <%= f.hidden_field :item_identifier, :value => @item.item_identifier -%>
25
+ <%- else -%>
26
+ <%= f.text_field :item_identifier, :class => 'resource_item_identifier' -%>
27
+ <%- end -%>
28
+ </div>
29
+
30
+ <div class="actions">
31
+ <%= f.submit %>
32
+ </div>
33
+ <%- end -%>
34
+
35
+ </div>
36
+ </div>
37
+
38
+ <div id="submenu" class="ui-corner-all">
39
+ <ul>
40
+ <li><%= link_to t('page.back'), inter_library_loans_path -%></li>
41
+ </ul>
42
+ </div>
@@ -0,0 +1,58 @@
1
+ <div id="content_detail" class="ui-corner-all">
2
+ <h1 class="title"><%= t('page.showing', :model => t('activerecord.models.inter_library_loan')) -%></h1>
3
+ <div id="content_list">
4
+ <p id="notice"><%= notice %></p>
5
+
6
+ <p>
7
+ <strong><%= t('activerecord.models.library') -%>:</strong>
8
+ <%= link_to @inter_library_loan.item.shelf.library.display_name.localize, @inter_library_loan.item.shelf.library -%>
9
+ </p>
10
+
11
+ <p>
12
+ <strong><%= t('inter_library_loan.borrowing_library') -%>:</strong>
13
+ <%= link_to @inter_library_loan.borrowing_library.display_name.localize, @inter_library_loan.borrowing_library -%>
14
+ </p>
15
+
16
+ <p>
17
+ <strong><%= t('activerecord.models.item') -%>:</strong>
18
+ <%= link_to @inter_library_loan.item.item_identifier, @inter_library_loan.item -%>
19
+ (<%= link_to @inter_library_loan.item.manifestation.original_title, @inter_library_loan.item.manifestation -%>)
20
+ </p>
21
+
22
+ <p>
23
+ <strong><%= t('activerecord.attributes.inter_library_loan.requested_at') -%>:</strong>
24
+ <%= l(@inter_library_loan.requested_at) if @inter_library_loan.requested_at -%>
25
+ </p>
26
+
27
+ <p>
28
+ <strong><%= t('activerecord.attributes.inter_library_loan.shipped_at') -%>:</strong>
29
+ <%= l(@inter_library_loan.shipped_at) if @inter_library_loan.shipped_at -%>
30
+ </p>
31
+
32
+ <p>
33
+ <strong><%= t('activerecord.attributes.inter_library_loan.received_at') -%>:</strong>
34
+ <%= l(@inter_library_loan.received_at) if @inter_library_loan.received_at -%>
35
+ </p>
36
+
37
+ <p>
38
+ <strong><%= t('activerecord.attributes.inter_library_loan.return_shipped_at') -%>:</strong>
39
+ <%= l(@inter_library_loan.return_shipped_at) if @inter_library_loan.return_shipped_at -%>
40
+ </p>
41
+
42
+ <p>
43
+ <strong><%= t('activerecord.attributes.inter_library_loan.return_received_at') -%>:</strong>
44
+ <%= l(@inter_library_loan.return_received_at) if @inter_library_loan.return_received_at -%>
45
+ </p>
46
+
47
+ </div>
48
+ </div>
49
+
50
+ <div id="submenu" class="ui-corner-all">
51
+ <ul>
52
+ <li><%= link_to t('page.edit'), edit_inter_library_loan_path(@inter_library_loan) -%></li>
53
+ <%- unless @inter_library_loan.item.shelf.library == current_user.library -%>
54
+ <li><%= link_to t('inter_library_loan.return_this_item'), edit_inter_library_loan_path(@inter_library_loan) -%></li>
55
+ <%- end -%>
56
+ <li><%= back_to_index(flash[:page_info]) -%></li>
57
+ </ul>
58
+ </div>
@@ -0,0 +1,20 @@
1
+ ja:
2
+ activerecord:
3
+ models:
4
+ inter_library_loan: Inter library loan
5
+
6
+ attributes:
7
+ inter_library_loan:
8
+ requested_at: Requested at
9
+ shipped_at: Shipped at
10
+ received_at: Received at
11
+ return_shipped_at: Return shipped at
12
+ return_received_at: Return received at
13
+ deleted_at: Deleted at
14
+ state: State
15
+
16
+ inter_library_loan:
17
+ library_group_inter_library_loan: "Inter library loans in %{library_group_name}"
18
+ borrowing_library: "Borrowing library"
19
+ return_this_item: "Return this item"
20
+
@@ -0,0 +1,20 @@
1
+ ja:
2
+ activerecord:
3
+ models:
4
+ inter_library_loan: 相互貸借
5
+
6
+ attributes:
7
+ inter_library_loan:
8
+ requested_at: 依頼時刻
9
+ shipped_at: 発送時刻
10
+ received_at: 受取時刻
11
+ return_shipped_at: 返却発送時刻
12
+ return_received_at: 返却受取時刻
13
+ deleted_at: 削除時刻
14
+ state: 状態
15
+
16
+ inter_library_loan:
17
+ library_group_inter_library_loan: "%{library_group_name} の相互貸借"
18
+ borrowing_library: "借受館"
19
+ return_this_item: "この資料を返却する"
20
+
data/config/routes.rb ADDED
@@ -0,0 +1,6 @@
1
+ Rails.application.routes.draw do
2
+ resources :inter_library_loans
3
+ resources :items do
4
+ resources :inter_library_loans
5
+ end
6
+ end
@@ -0,0 +1,23 @@
1
+ class CreateInterLibraryLoans < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :inter_library_loans do |t|
4
+ t.integer :item_id, :null => false
5
+ t.integer :borrowing_library_id, :null => false
6
+ t.timestamp :requested_at
7
+ t.timestamp :shipped_at
8
+ t.timestamp :received_at
9
+ t.timestamp :return_shipped_at
10
+ t.timestamp :return_received_at
11
+ t.timestamp :deleted_at
12
+ t.string :state
13
+
14
+ t.timestamps
15
+ end
16
+ add_index :inter_library_loans, :item_id
17
+ add_index :inter_library_loans, :borrowing_library_id
18
+ end
19
+
20
+ def self.down
21
+ drop_table :inter_library_loans
22
+ end
23
+ end
@@ -0,0 +1,4 @@
1
+ require "enju_inter_library_loan/engine"
2
+
3
+ module EnjuInterLibraryLoan
4
+ end
@@ -0,0 +1,13 @@
1
+ require 'devise'
2
+ require 'cancan'
3
+ require 'will_paginate'
4
+ require 'state_machine'
5
+ require 'friendly_id'
6
+ require 'attribute_normalizer'
7
+ require 'sunspot_rails'
8
+ require 'addressable/uri'
9
+
10
+ module EnjuInterLibraryLoan
11
+ class Engine < ::Rails::Engine
12
+ end
13
+ end
@@ -0,0 +1,3 @@
1
+ module EnjuInterLibraryLoan
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :enju_inter_library_loan do
3
+ # # Task goes here
4
+ # end
@@ -0,0 +1,185 @@
1
+ require 'spec_helper'
2
+ require 'sunspot/rails/spec_helper'
3
+
4
+ describe InterLibraryLoansController do
5
+ fixtures :all
6
+ disconnect_sunspot
7
+
8
+ describe "GET index" do
9
+ describe "When logged in as Administrator" do
10
+ before(:each) do
11
+ sign_in FactoryGirl.create(:admin)
12
+ end
13
+
14
+ it "assigns all inter_library_loans as @inter_library_loans" do
15
+ get :index
16
+ assigns(:inter_library_loans).should eq(InterLibraryLoan.page(1))
17
+ end
18
+ end
19
+
20
+ describe "When logged in as Librarian" do
21
+ before(:each) do
22
+ sign_in FactoryGirl.create(:librarian)
23
+ end
24
+
25
+ it "assigns all inter_library_loans as @inter_library_loans" do
26
+ get :index
27
+ assigns(:inter_library_loans).should eq(InterLibraryLoan.page(1))
28
+ end
29
+ end
30
+
31
+ describe "When logged in as User" do
32
+ before(:each) do
33
+ sign_in FactoryGirl.create(:user)
34
+ end
35
+
36
+ it "assigns empty as @inter_library_loans" do
37
+ get :index
38
+ assigns(:inter_library_loans).should be_empty
39
+ end
40
+ end
41
+
42
+ describe "When not logged in" do
43
+ it "assigns empty as @inter_library_loans" do
44
+ get :index
45
+ assigns(:inter_library_loans).should be_empty
46
+ end
47
+ end
48
+ end
49
+
50
+ describe "GET show" do
51
+ describe "When logged in as Administrator" do
52
+ before(:each) do
53
+ sign_in FactoryGirl.create(:admin)
54
+ end
55
+
56
+ it "assigns the requested inter_library_loan as @inter_library_loan" do
57
+ inter_library_loan = FactoryGirl.create(:inter_library_loan)
58
+ get :show, :id => inter_library_loan.id
59
+ assigns(:inter_library_loan).should eq(inter_library_loan)
60
+ end
61
+ end
62
+
63
+ describe "When logged in as Librarian" do
64
+ before(:each) do
65
+ sign_in FactoryGirl.create(:librarian)
66
+ end
67
+
68
+ it "assigns the requested inter_library_loan as @inter_library_loan" do
69
+ inter_library_loan = FactoryGirl.create(:inter_library_loan)
70
+ get :show, :id => inter_library_loan.id
71
+ assigns(:inter_library_loan).should eq(inter_library_loan)
72
+ end
73
+ end
74
+
75
+ describe "When logged in as User" do
76
+ before(:each) do
77
+ sign_in FactoryGirl.create(:user)
78
+ end
79
+
80
+ it "assigns the requested inter_library_loan as @inter_library_loan" do
81
+ inter_library_loan = FactoryGirl.create(:inter_library_loan)
82
+ get :show, :id => inter_library_loan.id
83
+ assigns(:inter_library_loan).should eq(inter_library_loan)
84
+ end
85
+ end
86
+
87
+ describe "When not logged in" do
88
+ it "assigns the requested inter_library_loan as @inter_library_loan" do
89
+ inter_library_loan = FactoryGirl.create(:inter_library_loan)
90
+ get :show, :id => inter_library_loan.id
91
+ assigns(:inter_library_loan).should eq(inter_library_loan)
92
+ end
93
+ end
94
+ end
95
+
96
+ describe "GET new" do
97
+ describe "When logged in as Administrator" do
98
+ before(:each) do
99
+ sign_in FactoryGirl.create(:admin)
100
+ end
101
+
102
+ it "assigns the requested inter_library_loan as @inter_library_loan" do
103
+ get :new
104
+ assigns(:inter_library_loan).should_not be_valid
105
+ end
106
+ end
107
+
108
+ describe "When logged in as Librarian" do
109
+ before(:each) do
110
+ sign_in FactoryGirl.create(:librarian)
111
+ end
112
+
113
+ it "assigns the requested inter_library_loan as @inter_library_loan" do
114
+ get :new
115
+ assigns(:inter_library_loan).should_not be_valid
116
+ end
117
+ end
118
+
119
+ describe "When logged in as User" do
120
+ before(:each) do
121
+ sign_in FactoryGirl.create(:user)
122
+ end
123
+
124
+ it "should not assign the requested inter_library_loan as @inter_library_loan" do
125
+ get :new
126
+ assigns(:inter_library_loan).should_not be_valid
127
+ response.should be_forbidden
128
+ end
129
+ end
130
+
131
+ describe "When not logged in" do
132
+ it "should not assign the requested inter_library_loan as @inter_library_loan" do
133
+ get :new
134
+ assigns(:inter_library_loan).should_not be_valid
135
+ response.should redirect_to(new_user_session_url)
136
+ end
137
+ end
138
+ end
139
+
140
+ describe "GET edit" do
141
+ describe "When logged in as Administrator" do
142
+ before(:each) do
143
+ sign_in FactoryGirl.create(:admin)
144
+ end
145
+
146
+ it "assigns the requested inter_library_loan as @inter_library_loan" do
147
+ inter_library_loan = FactoryGirl.create(:inter_library_loan)
148
+ get :edit, :id => inter_library_loan.id
149
+ assigns(:inter_library_loan).should eq(inter_library_loan)
150
+ end
151
+ end
152
+
153
+ describe "When logged in as Librarian" do
154
+ before(:each) do
155
+ sign_in FactoryGirl.create(:librarian)
156
+ end
157
+
158
+ it "assigns the requested inter_library_loan as @inter_library_loan" do
159
+ inter_library_loan = FactoryGirl.create(:inter_library_loan)
160
+ get :edit, :id => inter_library_loan.id
161
+ assigns(:inter_library_loan).should eq(inter_library_loan)
162
+ end
163
+ end
164
+
165
+ describe "When logged in as User" do
166
+ before(:each) do
167
+ sign_in FactoryGirl.create(:user)
168
+ end
169
+
170
+ it "assigns the requested inter_library_loan as @inter_library_loan" do
171
+ inter_library_loan = FactoryGirl.create(:inter_library_loan)
172
+ get :edit, :id => inter_library_loan.id
173
+ response.should be_forbidden
174
+ end
175
+ end
176
+
177
+ describe "When not logged in" do
178
+ it "should not assign the requested inter_library_loan as @inter_library_loan" do
179
+ inter_library_loan = FactoryGirl.create(:inter_library_loan)
180
+ get :edit, :id => inter_library_loan.id
181
+ response.should redirect_to(new_user_session_url)
182
+ end
183
+ end
184
+ end
185
+ end