diff options
Diffstat (limited to 'spec/unit/request')
| -rw-r--r-- | spec/unit/request/parameter/[]_spec.rb | 56 | ||||
| -rw-r--r-- | spec/unit/request/parameter/custom_spec.rb | 18 | 
2 files changed, 74 insertions, 0 deletions
diff --git a/spec/unit/request/parameter/[]_spec.rb b/spec/unit/request/parameter/[]_spec.rb new file mode 100644 index 0000000..1136eae --- /dev/null +++ b/spec/unit/request/parameter/[]_spec.rb @@ -0,0 +1,56 @@ +require 'spec_helper' + +describe Zero::Request::Parameter, '#[]' do +  subject { Zero::Request::Parameter.new(env) } + +  context 'without parameters' do +    let(:env) { EnvGenerator.get('/foo') } + +    it 'returns the custom parameter' do +      subject['foo'] = 'bar' +      expect(subject['foo']).to eq('bar') +    end +  end + +  context 'with query parameters' do +    let(:env) { EnvGenerator.get('/foo?foo=bar') } + +    it 'returns the query parameter' do +      expect(subject['foo']).to eq('bar') +    end + +    it 'returns the custom parameter' do +      subject['foo'] = 'baz' +      expect(subject['foo']).to eq('baz') +    end +  end + +  context 'with payload parameters' do +    let(:env) do +      EnvGenerator.post('/foo', { +        :input => 'foo=bar', 'CONTENT_TYPE' => 'multipart/form-data' +      }) +    end + +    it 'returns the payload value' do +      expect(subject['foo']).to eq('bar') +    end + +    it 'returns the custom parameter' do +      subject['foo'] = 'baz' +      expect(subject['foo']).to eq('baz') +    end +  end + +  context 'with query and payload parameters' do +    let(:env) do +      EnvGenerator.post('/foo?foo=baz', { +        :input => 'foo=bar', 'CONTENT_TYPE' => 'multipart/form-data' +      }) +    end + +    it 'returns the payload parameter' do +      expect(subject['foo']).to eq('bar') +    end +  end +end diff --git a/spec/unit/request/parameter/custom_spec.rb b/spec/unit/request/parameter/custom_spec.rb new file mode 100644 index 0000000..9c720d2 --- /dev/null +++ b/spec/unit/request/parameter/custom_spec.rb @@ -0,0 +1,18 @@ +require 'spec_helper' + +describe Zero::Request::Parameter, '#custom' do +  subject { Zero::Request::Parameter.new(env) } +  let(:env) { EnvGenerator.get('/foo') } + +  it 'returns a set custom parameter' do +    subject['foo'] = 'bar' +    expect(subject.custom['foo']).to eq('bar') +  end + +  it 'returns the latest set value' do +    subject['foo'] = 'first' +    subject['foo'] = 'latest' + +    expect(subject.custom['foo']).to eq('latest') +  end +end  | 
