OSDN Git Service

t#29505:md5 search wrote test on picture
[pettanr/pettanr.git] / spec / models / picture_spec.rb
index 002c716..45af380 100644 (file)
@@ -423,6 +423,35 @@ describe Picture do
     end\r
   end\r
   \r
+  describe 'md5検索に於いて' do
+    before do
+      @op = FactoryGirl.create :original_picture, :artist_id => @artist.id
+      @p = FactoryGirl.create :picture, :artist_id => @artist.id, :license_id => @license.id, :revision => 0,
+        :original_picture_id => @op.id, :md5 => 'a' * 32
+      @rp = FactoryGirl.create :resource_picture, :artist_id => @artist.id, :original_picture_id => @op.id, :license_id => @license.id, :picture_id => @p.id
+      @op2 = FactoryGirl.create :original_picture, :artist_id => @artist.id
+      @p2 = FactoryGirl.create :picture, :artist_id => @artist.id, :license_id => @license.id, :revision => 0,
+        :original_picture_id => @op2.id, :md5 => 'b' * 32
+      @op3 = FactoryGirl.create :original_picture, :artist_id => @artist.id
+    end
+    it 'リストを返す' do
+      res = Picture.find_by_md5(@p.md5)
+      res.is_a?(Array).should be_true
+    end
+    it 'md5が違えば含まない' do
+      res = Picture.find_by_md5(@p.md5)
+      res.include?(@p2).should be_false
+    end
+    it '更新日時順' do
+      @p3 = FactoryGirl.create :picture, :artist_id => @artist.id, :license_id => @license.id, :revision => 1,
+        :original_picture_id => @op2.id, :md5 => 'C' * 32
+      @p4 = FactoryGirl.create :picture, :artist_id => @artist.id, :license_id => @license.id, :revision => 1,
+        :original_picture_id => @op3.id, :md5 => @p3.md5, :updated_at => Time.now + 100
+      res = Picture.find_by_md5(@p3.md5)
+      res.should eq [@p4, @p3]
+    end
+  end
+  
   describe 'md5重複リストに於いて' do
     before do
       @op = FactoryGirl.create :original_picture, :artist_id => @artist.id