From f42f992906b12212cb770b5440f9500dd30eaaeb Mon Sep 17 00:00:00 2001 From: Kazuhiro Serizawa Date: Thu, 5 Jun 2025 13:13:26 +0900 Subject: [PATCH] Expand DataStoreFactory specs --- spec/data_store_factory_spec.rb | 40 +++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 spec/data_store_factory_spec.rb diff --git a/spec/data_store_factory_spec.rb b/spec/data_store_factory_spec.rb new file mode 100644 index 0000000..637c17c --- /dev/null +++ b/spec/data_store_factory_spec.rb @@ -0,0 +1,40 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe SimpleMapReduce::DataStoreFactory do + describe '.create' do + context "with 'default'" do + it 'returns DefaultDataStore instance' do + store = described_class.create('default') + expect(store).to be_a(SimpleMapReduce::DataStores::DefaultDataStore) + end + end + + context "with 'remote'" do + let(:options) do + { + resource_name: 'jobs', + resource_id: '1', + server_url: 'http://example.com' + } + end + + it 'returns RemoteDataStore instance' do + store = described_class.create('remote', options) + expect(store).to be_a(SimpleMapReduce::DataStores::RemoteDataStore) + end + + it 'passes options to RemoteDataStore' do + expect(SimpleMapReduce::DataStores::RemoteDataStore).to receive(:new).with(options) + described_class.create('remote', options) + end + end + + context 'with unsupported type' do + it 'raises ArgumentError' do + expect { described_class.create('foo') }.to raise_error(ArgumentError) + end + end + end +end