require 'spec_helper' describe 'singleton null object' do subject(:null_class) do Naught.build do |b| b.singleton end end it 'does not respond to .new' do expect { null_class.new }.to raise_error end it 'has only one instance' do null1 = null_class.instance null2 = null_class.instance expect(null1).to be(null2) end it 'can be cloned' do null = null_class.instance expect(null.clone).to be(null) end it 'can be duplicated' do null = null_class.instance expect(null.dup).to be(null) end it 'aliases .instance to .get' do expect(null_class.get).to be null_class.instance end it 'permits arbitrary arguments to be passed to .get' do null_class.get(42, :foo => 'bar') end end