active-fedora 6.2.0 → 6.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/.mailmap +9 -0
  3. data/CONTRIBUTORS.md +25 -0
  4. data/History.txt +52 -0
  5. data/active-fedora.gemspec +1 -1
  6. data/config/jetty.yml +1 -1
  7. data/gemfiles/gemfile.rails4 +1 -1
  8. data/lib/active_fedora/associations.rb +16 -1
  9. data/lib/active_fedora/associations/association_collection.rb +20 -2
  10. data/lib/active_fedora/associations/has_and_belongs_to_many_association.rb +7 -0
  11. data/lib/active_fedora/base.rb +32 -8
  12. data/lib/active_fedora/datastream.rb +7 -0
  13. data/lib/active_fedora/datastreams.rb +1 -0
  14. data/lib/active_fedora/nested_attributes.rb +34 -9
  15. data/lib/active_fedora/reflection.rb +7 -25
  16. data/lib/active_fedora/solr_digital_object.rb +4 -0
  17. data/lib/active_fedora/solr_service.rb +12 -9
  18. data/lib/active_fedora/unsaved_digital_object.rb +3 -0
  19. data/lib/active_fedora/validations.rb +7 -0
  20. data/lib/active_fedora/version.rb +1 -1
  21. data/lib/tasks/active_fedora_dev.rake +2 -11
  22. data/spec/fixtures/mods_articles/{hydrangea_article1.xml → mods_article1.xml} +0 -0
  23. data/spec/fixtures/{hydrangea_fixture_mods_article1.foxml.xml → test_fixture_mods_article1.foxml.xml} +5 -5
  24. data/spec/fixtures/{hydrangea_fixture_mods_article2.foxml.xml → test_fixture_mods_article2.foxml.xml} +5 -5
  25. data/spec/integration/associations_spec.rb +116 -33
  26. data/spec/integration/base_spec.rb +13 -35
  27. data/spec/integration/datastream_collections_spec.rb +6 -5
  28. data/spec/integration/datastream_spec.rb +21 -18
  29. data/spec/integration/datastreams_spec.rb +1 -3
  30. data/spec/integration/model_spec.rb +6 -6
  31. data/spec/integration/mods_article_integration_spec.rb +2 -2
  32. data/spec/integration/nested_attribute_spec.rb +88 -10
  33. data/spec/integration/ntriples_datastream_spec.rb +1 -1
  34. data/spec/integration/om_datastream_spec.rb +22 -22
  35. data/spec/integration/solr_instance_loader_spec.rb +4 -4
  36. data/spec/integration/solr_service_spec.rb +1 -1
  37. data/spec/samples/models/{hydrangea_article.rb → mods_article.rb} +2 -2
  38. data/spec/samples/samples.rb +1 -1
  39. data/spec/unit/base_spec.rb +12 -12
  40. data/spec/unit/datastreams_spec.rb +0 -10
  41. data/spec/unit/has_and_belongs_to_many_collection_spec.rb +0 -27
  42. data/spec/unit/has_many_collection_spec.rb +0 -28
  43. data/spec/unit/om_datastream_spec.rb +6 -6
  44. data/spec/unit/query_spec.rb +2 -2
  45. data/spec/unit/solr_config_options_spec.rb +1 -1
  46. data/spec/unit/solr_service_spec.rb +9 -1
  47. data/spec/unit/validations_spec.rb +18 -11
  48. metadata +18 -10
@@ -45,5 +45,9 @@ module ActiveFedora
45
45
  false
46
46
  end
47
47
 
48
+ def uri
49
+ "solr:#{pid}"
50
+ end
51
+
48
52
  end
49
53
  end
@@ -58,13 +58,14 @@ module ActiveFedora
58
58
  # If the pid_array is empty, defaults to a query of "id:NEVER_USE_THIS_ID", which will return an empty solr response
59
59
  # @param [Array] pid_array the pids that you want included in the query
60
60
  def self.construct_query_for_pids(pid_array)
61
- query = ""
62
- pid_array.each_index do |i|
63
- query << "#{SOLR_DOCUMENT_ID}:#{escape_uri_for_query(pid_array[i])}"
64
- query << " OR " if i != pid_array.length-1
61
+
62
+ q = pid_array.reject { |x| x.empty? }.map do |pid|
63
+ "_query_:\"{!raw f=#{SOLR_DOCUMENT_ID}}#{pid.gsub('"', '\"')}\""
65
64
  end
66
- query = "id:NEVER_USE_THIS_ID" if query.empty? || query == "id:"
67
- return query
65
+
66
+ return "id:NEVER_USE_THIS_ID" if q.empty?
67
+
68
+ return q.join(" OR ")
68
69
  end
69
70
 
70
71
  def self.solr_name(*args)
@@ -79,7 +80,7 @@ module ActiveFedora
79
80
  # @param [Hash] args key is the predicate, value is the target_uri
80
81
  def self.construct_query_for_rel(args)
81
82
  clauses = args.map do |predicate, target_uri|
82
- "#{solr_name(predicate, :symbol)}:#{escape_uri_for_query(target_uri)}"
83
+ "_query_:\"{!raw f=#{solr_name(predicate, :symbol)}}#{target_uri.gsub('"', '\"')}\""
83
84
  end
84
85
  clauses.join(" AND ")
85
86
  end
@@ -94,9 +95,11 @@ module ActiveFedora
94
95
 
95
96
  # Get the count of records that match the query
96
97
  # @param [String] query a solr query
98
+ # @param [Hash] args arguments to pass through to `args' param of SolrService.query (note that :rows will be overwritten to 0)
97
99
  # @return [Integer] number of records matching
98
- def self.count(query)
99
- SolrService.query(query, :raw=>true, :rows=>0)['response']['numFound'].to_i
100
+ def self.count(query, args={})
101
+ args = args.merge(:raw=>true, :rows=>0)
102
+ SolrService.query(query, args)['response']['numFound'].to_i
100
103
  end
101
104
 
102
105
  def self.add(doc)
@@ -17,6 +17,9 @@ module ActiveFedora
17
17
  @pid || PLACEHOLDER
18
18
  end
19
19
 
20
+ def uri
21
+ "unsaved:#{pid}"
22
+ end
20
23
 
21
24
  # Set the pid. This method is only avaialable before the object has been persisted in fedora.
22
25
  def pid=pid
@@ -69,6 +69,13 @@ module ActiveFedora
69
69
  output = super(context)
70
70
  errors.empty? && output
71
71
  end
72
+
73
+ # Test to see if the given field is required
74
+ # @param [Symbol] key a field
75
+ # @return [Boolean] is it required or not
76
+ def required?(key)
77
+ self.class.validators_on(key).any?{|v| v.kind_of? ActiveModel::Validations::PresenceValidator}
78
+ end
72
79
 
73
80
  protected
74
81
 
@@ -1,3 +1,3 @@
1
1
  module ActiveFedora
2
- VERSION = "6.2.0"
2
+ VERSION = "6.3.0"
3
3
  end
@@ -38,7 +38,7 @@ require 'rspec/core/rake_task'
38
38
 
39
39
  desc "Loads or refreshes the fixtures needed to run the tests"
40
40
  task :fixtures => :environment do
41
- ENV["pid"] = "hydrangea:fixture_mods_article1"
41
+ ENV["pid"] = "test:fixture_mods_article1"
42
42
  Rake::Task["repo:refresh"].invoke
43
43
  ENV["pid"] = nil
44
44
 
@@ -46,7 +46,7 @@ require 'rspec/core/rake_task'
46
46
  Rake::Task["repo:load"].reenable
47
47
  Rake::Task["repo:refresh"].reenable
48
48
 
49
- ENV["pid"] = "hydrangea:fixture_mods_article2"
49
+ ENV["pid"] = "test:fixture_mods_article2"
50
50
  Rake::Task["repo:refresh"].invoke
51
51
  ENV["pid"] = nil
52
52
  end
@@ -65,7 +65,6 @@ task :ci do
65
65
  ENV['environment'] = "test"
66
66
  Rake::Task["active_fedora:configure_jetty"].invoke
67
67
  jetty_params = Jettywrapper.load_config
68
- jetty_params[:startup_wait]= 60
69
68
  error = Jettywrapper.wrap(jetty_params) do
70
69
  Rake::Task['active_fedora:coverage'].invoke
71
70
  end
@@ -84,13 +83,5 @@ task :coverage do
84
83
  Rake::Task["active_fedora:rspec"].invoke
85
84
  end
86
85
 
87
- # Provides an :environment task for use while working within a working copy of active-fedora
88
- # You should never load this rake file into any other application
89
- desc 'Set up ActiveFedora environment. !! Only for use while working within a working copy of active-fedora'
90
- task :environment do
91
- puts "Initializing ActiveFedora Rake environment. This should only be called when working within a workign copy of the active-fedora code."
92
- require "#{APP_ROOT}/spec/samples/models/hydrangea_article"
93
- end
94
-
95
86
  end
96
87
 
@@ -1,5 +1,5 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <foxml:digitalObject VERSION="1.1" PID="hydrangea:fixture_mods_article1"
2
+ <foxml:digitalObject VERSION="1.1" PID="test:fixture_mods_article1"
3
3
  xmlns:foxml="info:fedora/fedora-system:def/foxml#"
4
4
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5
5
  xsi:schemaLocation="info:fedora/fedora-system:def/foxml# http://www.fedora.info/definitions/1/0/foxml1-1.xsd">
@@ -62,7 +62,7 @@ xsi:schemaLocation="info:fedora/fedora-system:def/foxml# http://www.fedora.info/
62
62
  <foxml:datastreamVersion ID="DC1.0" LABEL="Dublin Core Record for this object" CREATED="2010-06-17T19:56:19.301Z" MIMETYPE="text/xml" FORMAT_URI="http://www.openarchives.org/OAI/2.0/oai_dc/" SIZE="360">
63
63
  <foxml:xmlContent>
64
64
  <oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
65
- <dc:identifier>hydrangea:fixture_mods_article1</dc:identifier>
65
+ <dc:identifier>test:fixture_mods_article1</dc:identifier>
66
66
  </oai_dc:dc>
67
67
  </foxml:xmlContent>
68
68
  </foxml:datastreamVersion>
@@ -175,8 +175,8 @@ xsi:schemaLocation="info:fedora/fedora-system:def/foxml# http://www.fedora.info/
175
175
  <foxml:datastreamVersion ID="RELS-EXT.0" LABEL="" CREATED="2010-06-17T19:56:22.353Z" MIMETYPE="text/xml" SIZE="306">
176
176
  <foxml:xmlContent>
177
177
  <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
178
- <rdf:Description rdf:about="info:fedora/hydrangea:fixture_mods_article1">
179
- <hasModel xmlns="info:fedora/fedora-system:def/relations-external#" rdf:resource="info:fedora/afmodel:HydrangeaArticle"></hasModel>
178
+ <rdf:Description rdf:about="info:fedora/test:fixture_mods_article1">
179
+ <hasModel xmlns="info:fedora/fedora-system:def/relations-external#" rdf:resource="info:fedora/afmodel:ModsArticle"></hasModel>
180
180
  </rdf:Description>
181
181
  </rdf:RDF>
182
182
  </foxml:xmlContent>
@@ -231,4 +231,4 @@ xsi:schemaLocation="info:fedora/fedora-system:def/foxml# http://www.fedora.info/
231
231
  </foxml:xmlContent>
232
232
  </foxml:datastreamVersion>
233
233
  </foxml:datastream>
234
- </foxml:digitalObject>
234
+ </foxml:digitalObject>
@@ -1,5 +1,5 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <foxml:digitalObject VERSION="1.1" PID="hydrangea:fixture_mods_article2"
2
+ <foxml:digitalObject VERSION="1.1" PID="test:fixture_mods_article2"
3
3
  xmlns:foxml="info:fedora/fedora-system:def/foxml#"
4
4
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5
5
  xsi:schemaLocation="info:fedora/fedora-system:def/foxml# http://www.fedora.info/definitions/1/0/foxml1-1.xsd">
@@ -62,7 +62,7 @@ xsi:schemaLocation="info:fedora/fedora-system:def/foxml# http://www.fedora.info/
62
62
  <foxml:datastreamVersion ID="DC1.0" LABEL="Dublin Core Record for this object" CREATED="2010-06-17T19:56:19.301Z" MIMETYPE="text/xml" FORMAT_URI="http://www.openarchives.org/OAI/2.0/oai_dc/" SIZE="360">
63
63
  <foxml:xmlContent>
64
64
  <oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
65
- <dc:identifier>hydrangea:fixture_mods_article2</dc:identifier>
65
+ <dc:identifier>test:fixture_mods_article2</dc:identifier>
66
66
  </oai_dc:dc>
67
67
  </foxml:xmlContent>
68
68
  </foxml:datastreamVersion>
@@ -175,8 +175,8 @@ xsi:schemaLocation="info:fedora/fedora-system:def/foxml# http://www.fedora.info/
175
175
  <foxml:datastreamVersion ID="RELS-EXT.0" LABEL="" CREATED="2010-06-17T19:56:22.353Z" MIMETYPE="text/xml" SIZE="306">
176
176
  <foxml:xmlContent>
177
177
  <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
178
- <rdf:Description rdf:about="info:fedora/hydrangea:fixture_mods_article2">
179
- <hasModel xmlns="info:fedora/fedora-system:def/relations-external#" rdf:resource="info:fedora/afmodel:HydrangeaArticle"></hasModel>
178
+ <rdf:Description rdf:about="info:fedora/test:fixture_mods_article2">
179
+ <hasModel xmlns="info:fedora/fedora-system:def/relations-external#" rdf:resource="info:fedora/afmodel:ModsArticle"></hasModel>
180
180
  </rdf:Description>
181
181
  </rdf:RDF>
182
182
  </foxml:xmlContent>
@@ -231,4 +231,4 @@ xsi:schemaLocation="info:fedora/fedora-system:def/foxml# http://www.fedora.info/
231
231
  </foxml:xmlContent>
232
232
  </foxml:datastreamVersion>
233
233
  </foxml:datastream>
234
- </foxml:digitalObject>
234
+ </foxml:digitalObject>
@@ -160,16 +160,20 @@ describe ActiveFedora::Base do
160
160
 
161
161
  describe "of has_many_and_belongs_to" do
162
162
  before do
163
- @topic1 = Topic.new
164
- @topic1.save
165
- @topic2 = Topic.new
166
- @topic2.save
163
+ @topic1 = Topic.create
164
+ @topic2 = Topic.create
165
+ @book = Book.create
167
166
  end
168
- it "habtm should set relationships bidirectionally" do
169
- @book = Book.new
167
+ it "habtm should set and remove relationships bidirectionally" do
170
168
  @book.topics << @topic1
171
- @book.topics.map(&:pid).should == [@topic1.pid]
172
- Topic.find(@topic1.pid).books.should == [] #Can't have saved it because @book isn't saved yet.
169
+ @book.topics.should == [@topic1]
170
+ @topic1.books.should == [@book]
171
+ @topic1.reload.books.should == [@book]
172
+
173
+ @book.topics.delete(@topic1)
174
+ #@topic1.books.delete(@book)
175
+ @book.topics.should == []
176
+ @topic1.books.should == []
173
177
  end
174
178
  after do
175
179
  @topic1.delete
@@ -353,55 +357,134 @@ describe ActiveFedora::Base do
353
357
 
354
358
  describe "single direction habtm" do
355
359
  before :all do
356
- class LibraryBook < ActiveFedora::Base
357
- has_and_belongs_to_many :pages, :property=>:is_part_of
360
+ class Course < ActiveFedora::Base
361
+ has_and_belongs_to_many :textbooks, :property=>:is_part_of
358
362
  end
359
- class Page < ActiveFedora::Base
360
- has_many :library_books, :property=>:is_part_of
363
+ class Textbook < ActiveFedora::Base
364
+ has_many :courses, :property=>:is_part_of
361
365
  end
362
366
 
363
367
  end
364
368
  after :all do
365
- Object.send(:remove_const, :LibraryBook)
366
- Object.send(:remove_const, :Page)
369
+ Object.send(:remove_const, :Course)
370
+ Object.send(:remove_const, :Textbook)
367
371
  end
368
372
 
369
373
  describe "with a parent that has two children" do
370
374
  before do
371
- @book = LibraryBook.create
372
- @p1 = Page.create()
373
- @p2 = Page.create()
374
- @book.pages = [@p1, @p2]
375
- @book.save
375
+ @course = Course.create
376
+ @t1 = Textbook.create()
377
+ @t2 = Textbook.create()
378
+ @course.textbooks = [@t1, @t2]
379
+ @course.save
376
380
  end
377
381
 
378
382
  it "should load the association stored in the parent" do
379
- @reloaded_book = LibraryBook.find(@book.pid)
380
- @reloaded_book.pages.should == [@p1, @p2]
383
+ @reloaded_course = Course.find(@course.pid)
384
+ @reloaded_course.textbooks.should == [@t1, @t2]
381
385
  end
382
386
 
383
387
  it "should allow a parent to be deleted from the has_many association" do
384
- @reloaded_book = LibraryBook.find(@book.pid)
385
- @p1.library_books.delete(@reloaded_book)
386
- @reloaded_book.save
388
+ @reloaded_course = Course.find(@course.pid)
389
+ @t1.courses.delete(@reloaded_course)
390
+ @reloaded_course.save
387
391
 
388
- @reloaded_book = LibraryBook.find(@book.pid)
389
- @reloaded_book.pages.should == [@p2]
392
+ @reloaded_course = Course.find(@course.pid)
393
+ @reloaded_course.textbooks.should == [@t2]
394
+ end
395
+
396
+ it "should allow replacing the children" do
397
+ @t3 = Textbook.create()
398
+ @t4 = Textbook.create()
399
+ @course.textbooks = [@t3, @t4]
400
+ @course.save
401
+
402
+ @course.reload.textbooks.should == [@t3, @t4]
390
403
  end
391
404
 
392
405
  it "should allow a child to be deleted from the has_and_belongs_to_many association" do
393
- pending "This isn't working and we ought to fix it"
394
- @reloaded_book = LibraryBook.find(@book.pid)
395
- @reloaded_book.pages.delete(@p1)
396
- @reloaded_book.save
397
- @p1.save
406
+ @reloaded_course = Course.find(@course.pid)
407
+ @reloaded_course.textbooks.delete(@t1)
408
+ @reloaded_course.save
409
+ @t1.save
398
410
 
399
- @reloaded_book = LibraryBook.find(@book.pid)
400
- @reloaded_book.pages.should == [@p2]
411
+ @reloaded_course = Course.find(@course.pid)
412
+ @reloaded_course.textbooks.should == [@t2]
401
413
  end
402
414
  end
403
415
  end
404
416
 
417
+ describe "association hooks" do
418
+ describe "for habtm" do
419
+ before :all do
420
+ class LibraryBook < ActiveFedora::Base
421
+ has_and_belongs_to_many :pages, :property=>:is_part_of, after_remove: :after_hook, before_remove: :before_hook
422
+
423
+ def before_hook(m)
424
+ say_hi(m)
425
+ m.reload.library_books.count.should == 1
426
+ end
427
+
428
+ def after_hook(m)
429
+ say_hi(m)
430
+ m.reload.library_books.count.should == 0
431
+ end
432
+
433
+
434
+ end
435
+ class Page < ActiveFedora::Base
436
+ has_many :library_books, :property=>:is_part_of
437
+ end
438
+
439
+ end
440
+ after :all do
441
+ Object.send(:remove_const, :LibraryBook)
442
+ Object.send(:remove_const, :Page)
443
+ end
444
+
445
+ describe "removing association" do
446
+ subject {LibraryBook.create}
447
+ before do
448
+ @p1 = Page.create
449
+ @p2 = Page.create
450
+ subject.pages << @p1 << @p2
451
+ subject.save!
452
+ end
453
+ it "should save between the before and after hooks" do
454
+ subject.should_receive(:say_hi).with(@p2).twice
455
+ subject.pages.delete(@p2)
456
+ end
457
+ end
458
+ end
459
+ describe "for has_many" do
460
+ before :all do
461
+ class LibraryBook < ActiveFedora::Base
462
+ has_many :pages, :property=>:is_part_of, after_remove: :say_hi
463
+
464
+ end
465
+ class Page < ActiveFedora::Base
466
+ belongs_to :library_book, :property=>:is_part_of
467
+ end
468
+
469
+ end
470
+ after :all do
471
+ Object.send(:remove_const, :LibraryBook)
472
+ Object.send(:remove_const, :Page)
473
+ end
474
+
475
+ describe "removing association" do
476
+ subject {LibraryBook.new}
477
+ before do
478
+ @p1 = subject.pages.build
479
+ @p2 = subject.pages.build
480
+ end
481
+ it "should run the hooks" do
482
+ subject.should_receive(:say_hi).with(@p2)
483
+ subject.pages.delete(@p2)
484
+ end
485
+ end
486
+ end
487
+ end
405
488
 
406
489
 
407
490
  describe "when a object is deleted" do
@@ -21,14 +21,13 @@ describe "A base object with metadata" do
21
21
  obj.foo.should_not be_new
22
22
  obj.foo.person.should == ['bob']
23
23
  person_field = ActiveFedora::SolrService.solr_name('person', type: :string)
24
- ActiveFedora::SolrService.query("id:#{@obj.pid.gsub(":", "\\:")}", :fl=>"id #{person_field}").first.should == {"id"=>@obj.pid, person_field =>['bob']}
24
+ ActiveFedora::SolrService.query("{!raw f=id}#{@obj.pid}", :fl=>"id #{person_field}").first.should == {"id"=>@obj.pid, person_field =>['bob']}
25
25
  end
26
26
  end
27
27
 
28
28
  describe "setting object state" do
29
29
  it "should store it" do
30
30
  obj = MockAFBaseRelationship.create
31
- obj.state.should == 'A'
32
31
  obj.state='D'
33
32
  obj.save!
34
33
  obj.reload
@@ -39,8 +38,8 @@ describe "A base object with metadata" do
39
38
  describe "that already exists in the repo" do
40
39
  before do
41
40
  @release = MockAFBaseRelationship.create()
42
- @release.add_relationship(:is_governed_by, 'info:fedora/narmdemo:catalog-fixture')
43
- @release.add_relationship(:is_part_of, 'info:fedora/narmdemo:777')
41
+ @release.add_relationship(:is_governed_by, 'info:fedora/test:catalog-fixture')
42
+ @release.add_relationship(:is_part_of, 'info:fedora/test:777')
44
43
  @release.foo.person = "test foo content"
45
44
  @release.save
46
45
  end
@@ -58,21 +57,21 @@ describe "A base object with metadata" do
58
57
  describe "clone_into a new object" do
59
58
  before do
60
59
  begin
61
- new_object = MockAFBaseRelationship.find('narm:999')
60
+ new_object = MockAFBaseRelationship.find('test:999')
62
61
  new_object.delete
63
62
  rescue ActiveFedora::ObjectNotFoundError
64
63
  end
65
64
 
66
- new_object = MockAFBaseRelationship.create(:pid => 'narm:999')
65
+ new_object = MockAFBaseRelationship.create(:pid => 'test:999')
67
66
  @release.clone_into(new_object)
68
- @new_object = MockAFBaseRelationship.find('narm:999')
67
+ @new_object = MockAFBaseRelationship.find('test:999')
69
68
  end
70
69
  it "should have all the assertions" do
71
70
  @new_object.rels_ext.content.should be_equivalent_to '<rdf:RDF xmlns:ns1="info:fedora/fedora-system:def/model#" xmlns:ns2="info:fedora/fedora-system:def/relations-external#" xmlns:ns0="http://projecthydra.org/ns/relations#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
72
- <rdf:Description rdf:about="info:fedora/narm:999">
73
- <ns0:isGovernedBy rdf:resource="info:fedora/narmdemo:catalog-fixture"/>
71
+ <rdf:Description rdf:about="info:fedora/test:999">
72
+ <ns0:isGovernedBy rdf:resource="info:fedora/test:catalog-fixture"/>
74
73
  <ns1:hasModel rdf:resource="info:fedora/afmodel:MockAFBaseRelationship"/>
75
- <ns2:isPartOf rdf:resource="info:fedora/narmdemo:777"/>
74
+ <ns2:isPartOf rdf:resource="info:fedora/test:777"/>
76
75
 
77
76
  </rdf:Description>
78
77
  </rdf:RDF>'
@@ -89,9 +88,9 @@ describe "A base object with metadata" do
89
88
  it "should have all the assertions" do
90
89
  @new_object.rels_ext.content.should be_equivalent_to '<rdf:RDF xmlns:ns1="info:fedora/fedora-system:def/model#" xmlns:ns2="info:fedora/fedora-system:def/relations-external#" xmlns:ns0="http://projecthydra.org/ns/relations#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
91
90
  <rdf:Description rdf:about="info:fedora/'+ @new_object.pid+'">
92
- <ns0:isGovernedBy rdf:resource="info:fedora/narmdemo:catalog-fixture"/>
91
+ <ns0:isGovernedBy rdf:resource="info:fedora/test:catalog-fixture"/>
93
92
  <ns1:hasModel rdf:resource="info:fedora/afmodel:MockAFBaseRelationship"/>
94
- <ns2:isPartOf rdf:resource="info:fedora/narmdemo:777"/>
93
+ <ns2:isPartOf rdf:resource="info:fedora/test:777"/>
95
94
 
96
95
  </rdf:Description>
97
96
  </rdf:RDF>'
@@ -219,16 +218,6 @@ describe ActiveFedora::Base do
219
218
  @test_object.pid.should_not be_nil
220
219
  end
221
220
  end
222
-
223
- describe '.assign_pid' do
224
- it "should get nextid" do
225
- one = ActiveFedora::Base.assign_pid(ActiveFedora::UnsavedDigitalObject.new(ActiveFedora::Base, 'changeme'))
226
- two = ActiveFedora::Base.assign_pid(ActiveFedora::UnsavedDigitalObject.new(ActiveFedora::Base, 'changeme'))
227
- one = one.gsub('changeme:', '').to_i
228
- two = two.gsub('changeme:', '').to_i
229
- two.should == one + 1
230
- end
231
- end
232
221
 
233
222
  describe "#save" do
234
223
  before(:each) do
@@ -257,7 +246,6 @@ describe ActiveFedora::Base do
257
246
  inner_object = @test_object2.inner_object
258
247
  inner_object.pid.should == @test_object2.pid
259
248
  inner_object.should respond_to(:lastModifiedDate)
260
- inner_object.ownerId.should == "fedoraAdmin"
261
249
  end
262
250
  end
263
251
 
@@ -296,16 +284,6 @@ describe ActiveFedora::Base do
296
284
  end
297
285
  end
298
286
 
299
- describe ".dc" do
300
- it "should expose the DC datastream" do
301
- dc = @test_object.dc
302
- dc.should be_a_kind_of(ActiveFedora::Datastream)
303
- rexml = REXML::Document.new(dc.content)
304
- rexml.root.elements["dc:identifier"].get_text.should_not be_nil
305
- end
306
- end
307
-
308
-
309
287
  describe '.rels_ext' do
310
288
  it "should retrieve RelsExtDatastream object via rels_ext method" do
311
289
  @test_object.rels_ext.should be_instance_of(ActiveFedora::RelsExtDatastream)
@@ -437,10 +415,10 @@ describe ActiveFedora::Base do
437
415
 
438
416
  describe "#exists?" do
439
417
  it "should return true for objects that exist" do
440
- ActiveFedora::Base.exists?('hydrangea:fixture_mods_article1').should be_true
418
+ ActiveFedora::Base.exists?('test:fixture_mods_article1').should be_true
441
419
  end
442
420
  it "should return false for objects that don't exist" do
443
- ActiveFedora::Base.exists?('nil:object').should be_false
421
+ ActiveFedora::Base.exists?('test:missing_object').should be_false
444
422
  end
445
423
  it "should return false for nil" do
446
424
  ActiveFedora::Base.exists?(nil).should be_false