Sha256: 4309345c1e9b4a2b5c40880c6a0c4c2ced950820c8bd55864d523f36b39bbccf
Contents?: true
Size: 1.44 KB
Versions: 3
Compression:
Stored size: 1.44 KB
Contents
require "test_helper" class DefaultTest < Minitest::Spec Song = Struct.new(:title, :genre, :composer) Composer = Struct.new(:name) class Twin < Disposable::Twin feature Default property :title, default: "Medio-Core" property :genre, default: -> { "Punk Rock #{model.class}" } property :composer, default: Composer.new do property :name, default: "NOFX" end end # all given. it do twin = Twin.new(Song.new("Anarchy Camp", "Punk", Composer.new("Nofx"))) twin.title.must_equal "Anarchy Camp" twin.genre.must_equal "Punk" twin.composer.name.must_equal "Nofx" end # defaults, please. it do twin = Twin.new(Song.new) twin.title.must_equal "Medio-Core" twin.composer.name.must_equal "NOFX" twin.genre.must_equal "Punk Rock DefaultTest::Song" end # false value is not defaulted. it do twin = Twin.new(Song.new(false)) twin.title.must_equal false end describe "inheritance" do class SuperTwin < Disposable::Twin feature Default property :name, default: "n/a" end class MegaTwin < SuperTwin end it { MegaTwin.new(Composer.new).name.must_equal "n/a" } end end class DefaultAndVirtualTest < Minitest::Spec class Twin < Disposable::Twin feature Default feature Changed property :title, default: "0", virtual: true end it do twin = Twin.new(Object.new) twin.title.must_equal "0" # twin.changed.must_equal [] end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
disposable-0.4.0 | test/twin/default_test.rb |
disposable-0.3.2 | test/twin/default_test.rb |
disposable-0.3.1 | test/twin/default_test.rb |