Sha256: 81b7222637cb505a18f10697e97481145103c6bafa0c65eadc027467fe679072
Contents?: true
Size: 1.83 KB
Versions: 1
Compression:
Stored size: 1.83 KB
Contents
require 'device_map' RSpec.describe DeviceMap::DeviceData::Builder do let(:builder_node_class) { 'builder_node_class' } let(:device_id) { 'device_id' } let(:keywords) { ['keyword1', 'keyword2'] } let(:default_priority) { 1 } describe '.find' do it 'returns builder object' do builder_stub = double(:builder) described_class.register(builder_stub, builder_node_class) builder = described_class.find(builder_node_class) expect(builder).to eq builder_stub end it 'raises exception if builder node class is unknown' do expect do described_class.find('unknown') end.to raise_error(DeviceMap::DeviceData::Builder::BuilderNotFound) end end describe DeviceMap::DeviceData::Builder::Simple do before do DeviceMap::DeviceData::Builder.register( described_class, builder_node_class) end describe '#patterns' do it 'maps single pattern object to each device keyword' do builder = described_class.new(default_priority) patterns = builder.patterns(device_id, keywords) expect(patterns.size).to eq keywords.size pattern_keywords = patterns.flat_map(&:keywords) expect(pattern_keywords).to eq keywords end end end describe DeviceMap::DeviceData::Builder::TwoStep do before do DeviceMap::DeviceData::Builder.register( described_class, builder_node_class) end describe '#patterns' do it 'maps all device keywords to single pattern object' do builder = described_class.new(default_priority) patterns = builder.patterns(device_id, keywords) expect(patterns.size).to eq 2 pattern_keywords = patterns.flat_map(&:keywords) expect(pattern_keywords).to include(*keywords) expect(pattern_keywords).to include(keywords.join) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
device_map-0.1.2 | spec/device_data/builder_spec.rb |