test/model_test.rb in paperdragon-0.0.7 vs test/model_test.rb in paperdragon-0.0.8

- old
+ new

@@ -16,11 +16,14 @@ def image_meta_data {:thumb => {:uid => "Avatar-thumb"}} end end + # model has image_meta_data hash. it { Avatar.new.image[:thumb].url.must_equal "/paperdragon/Avatar-thumb" } + # model doesn't have upload, yet. returns empty attachment. + it { Image.new.image.metadata.must_equal({}) } # minimum setup class Image < OpenStruct include Paperdragon::Model @@ -49,11 +52,10 @@ model.image_meta_data.class.must_equal Hash model.image_meta_data.must_equal({:original=>{:width=>216, :height=>63, :uid=>"original-apotomo.png"}, :thumb=>{:width=>8, :height=>2, :uid=>"thumb-apotomo-1.png"}}) end - # passing options from image(file, {..}) to the Attachment. class ImageWithAttachment < OpenStruct include Paperdragon::Model class Attachment < Paperdragon::Attachment @@ -82,6 +84,46 @@ v.reprocess!(:original, "1") { |j| j.thumb!("8x8") } end model.image_meta_data.must_equal({:original=>{:width=>8, :height=>2, :uid=>"{:new=>true, :model=>#<PaperdragonModelTest::ImageWithAttachment image_meta_data={:original=>{:width=>216, :height=>63, :uid=>\"{:path=>\\\"/\\\", :model=>_<PaperdragonModelTest::ImageWithAttachment>}\"}}>}"}}) end +end + + +class ModelWriterTest < MiniTest::Spec + class Image < OpenStruct + extend Paperdragon::Model::Writer + processable_writer :image + end + + # process with #image{} + let (:logo) { Pathname("test/fixtures/apotomo.png") } + + it do + model = Image.new + model.image!(logo) do |v| + v.process!(:original) + v.process!(:thumb) { |j| j.thumb!("16x16") } + end + + model.image_meta_data.must_equal({:original=>{:width=>216, :height=>63, :uid=>"original-apotomo.png"}, :thumb=>{:width=>16, :height=>5, :uid=>"thumb-apotomo.png"}}) + + + model.image! do |v| + v.reprocess!(:thumb, "1") { |j| j.thumb!("8x8") } + end + + model.image_meta_data.class.must_equal Hash + model.image_meta_data.must_equal({:original=>{:width=>216, :height=>63, :uid=>"original-apotomo.png"}, :thumb=>{:width=>8, :height=>2, :uid=>"thumb-apotomo-1.png"}}) + end + +end + + +class ModelReaderTest < MiniTest::Spec + class Image < OpenStruct + extend Paperdragon::Model::Reader + processable_reader :image + end + + it { Image.new(:image_meta_data => {:thumb => {:uid => "Avatar-thumb"}}).image[:thumb].url.must_equal "/paperdragon/Avatar-thumb" } end \ No newline at end of file