Sha256: 19e3405c38cab96a39dea218f92edcd4dd1ac5ceb1f862f68ffd496d4fbe56f0
Contents?: true
Size: 1.33 KB
Versions: 3
Compression:
Stored size: 1.33 KB
Contents
require "test_helper" class PropertyProcessorTest < Minitest::Spec Album = Struct.new(:title, :artist, :songs) Artist = Struct.new(:name) Song = Struct.new(:id) class AlbumTwin < Disposable::Twin property :title property :artist do property :name end collection :songs do property :id end end describe "collection" do let(:twin) { AlbumTwin.new(Album.new("Live!", Artist.new, [Song.new(1), Song.new(2)])) } it "yields twin, index" do called = [] Disposable::Twin::PropertyProcessor.new(twin.class.definitions.get(:songs), twin).() { |v, i| called << [v.model, i] } called.inspect.must_equal %{[[#<struct PropertyProcessorTest::Song id=1>, 0], [#<struct PropertyProcessorTest::Song id=2>, 1]]} end it "yields twin" do called = [] Disposable::Twin::PropertyProcessor.new(twin.class.definitions.get(:songs), twin).() { |v| called << [v.model] } called.inspect.must_equal %{[[#<struct PropertyProcessorTest::Song id=1>], [#<struct PropertyProcessorTest::Song id=2>]]} end it "allows nil collection" do twin = AlbumTwin.new(Album.new("Live!", Artist.new, nil)) called = [] Disposable::Twin::PropertyProcessor.new(twin.class.definitions.get(:songs), twin).() { |v, i| called << [v.model, i] } called.inspect.must_equal %{[]} end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
disposable-0.4.6 | test/twin/property_processor_test.rb |
disposable-0.4.5 | test/twin/property_processor_test.rb |
disposable-0.4.4 | test/twin/property_processor_test.rb |