spec/ransack_spec.rb in nql-0.0.3 vs spec/ransack_spec.rb in nql-0.0.4
- old
+ new
@@ -1,135 +1,135 @@
-require 'spec_helper'
-
-describe 'Ransack Query' do
-
- let(:parser) { NQL::SyntaxParser.new }
-
- context 'Single comparisons' do
-
- it 'Equals' do
- q = parser.parse('id = 1234').to_ransack
-
- q[:c][0].should have_attribute 'id'
- q[:c][0].should have_predicate 'eq'
- q[:c][0].should have_value '1234'
- end
-
- it 'Not equals' do
- q = parser.parse('id != 1234').to_ransack
-
- q[:c][0].should have_attribute 'id'
- q[:c][0].should have_predicate 'not_eq'
- q[:c][0].should have_value '1234'
- end
-
- it 'Greater than' do
- q = parser.parse('id > 1234').to_ransack
-
- q[:c][0].should have_attribute 'id'
- q[:c][0].should have_predicate 'gt'
- q[:c][0].should have_value '1234'
- end
-
- it 'Greater or equals than' do
- q = parser.parse('id >= 1234').to_ransack
-
- q[:c][0].should have_attribute 'id'
- q[:c][0].should have_predicate 'gteq'
- q[:c][0].should have_value '1234'
- end
-
- it 'Less than' do
- q = parser.parse('id < 1234').to_ransack
-
- q[:c][0].should have_attribute 'id'
- q[:c][0].should have_predicate 'lt'
- q[:c][0].should have_value '1234'
- end
-
- it 'Less or equals than' do
- q = parser.parse('id <= 1234').to_ransack
-
- q[:c][0].should have_attribute 'id'
- q[:c][0].should have_predicate 'lteq'
- q[:c][0].should have_value '1234'
- end
-
- it 'Contains' do
- q = parser.parse('id : 1234').to_ransack
-
- q[:c][0].should have_attribute 'id'
- q[:c][0].should have_predicate 'cont'
- q[:c][0].should have_value '1234'
- end
-
- it 'Model references' do
- q = parser.parse('models.id = 1234').to_ransack
-
- q[:c][0].should have_attribute 'models_id'
- q[:c][0].should have_predicate 'eq'
- q[:c][0].should have_value '1234'
- end
-
- end
-
- context 'Coordinated comparisons' do
-
- it 'And' do
- q = parser.parse('id > 1234 & name = abcd').to_ransack
-
- q[:g][0][:m].should eq 'and'
- q[:g][0][:c][0].should have_attribute 'id'
- q[:g][0][:c][0].should have_predicate 'gt'
- q[:g][0][:c][0].should have_value '1234'
- q[:g][0][:c][1].should have_attribute 'name'
- q[:g][0][:c][1].should have_predicate 'eq'
- q[:g][0][:c][1].should have_value 'abcd'
- end
-
- it 'Or' do
- q = parser.parse('id < 1234 | name : abcd').to_ransack
-
- q[:g][0][:m].should eq 'or'
- q[:g][0][:c][0].should have_attribute 'id'
- q[:g][0][:c][0].should have_predicate 'lt'
- q[:g][0][:c][0].should have_value '1234'
- q[:g][0][:c][1].should have_attribute 'name'
- q[:g][0][:c][1].should have_predicate 'cont'
- q[:g][0][:c][1].should have_value 'abcd'
- end
-
- it 'And then Or' do
- q = parser.parse('id > 1234 & name = abcd | name : efgh').to_ransack
-
- q[:g][0][:m].should eq 'and'
- q[:g][0][:c][0].should have_attribute 'id'
- q[:g][0][:c][0].should have_predicate 'gt'
- q[:g][0][:c][0].should have_value '1234'
- q[:g][0][:g][0][:m].should eq 'or'
- q[:g][0][:g][0][:c][0].should have_attribute 'name'
- q[:g][0][:g][0][:c][0].should have_predicate 'eq'
- q[:g][0][:g][0][:c][0].should have_value 'abcd'
- q[:g][0][:g][0][:c][1].should have_attribute 'name'
- q[:g][0][:g][0][:c][1].should have_predicate 'cont'
- q[:g][0][:g][0][:c][1].should have_value 'efgh'
- end
-
- it 'With parentheses' do
- q = parser.parse('(id > 1234 & name = abcd) | name : efgh').to_ransack
-
- q[:g][0][:g][0][:m].should eq 'and'
- q[:g][0][:g][0][:c][0].should have_attribute 'id'
- q[:g][0][:g][0][:c][0].should have_predicate 'gt'
- q[:g][0][:g][0][:c][0].should have_value '1234'
- q[:g][0][:g][0][:c][1].should have_attribute 'name'
- q[:g][0][:g][0][:c][1].should have_predicate 'eq'
- q[:g][0][:g][0][:c][1].should have_value 'abcd'
- q[:g][0][:m].should eq 'or'
- q[:g][0][:c][0].should have_attribute 'name'
- q[:g][0][:c][0].should have_predicate 'cont'
- q[:g][0][:c][0].should have_value 'efgh'
- end
-
- end
-
+require 'spec_helper'
+
+describe 'Ransack Query' do
+
+ let(:parser) { NQL::SyntaxParser.new }
+
+ context 'Single comparisons' do
+
+ it 'Equals' do
+ q = parser.parse('id = 1234').to_ransack
+
+ q[:c][0].should have_attribute 'id'
+ q[:c][0].should have_predicate 'eq'
+ q[:c][0].should have_value '1234'
+ end
+
+ it 'Not equals' do
+ q = parser.parse('id != 1234').to_ransack
+
+ q[:c][0].should have_attribute 'id'
+ q[:c][0].should have_predicate 'not_eq'
+ q[:c][0].should have_value '1234'
+ end
+
+ it 'Greater than' do
+ q = parser.parse('id > 1234').to_ransack
+
+ q[:c][0].should have_attribute 'id'
+ q[:c][0].should have_predicate 'gt'
+ q[:c][0].should have_value '1234'
+ end
+
+ it 'Greater or equals than' do
+ q = parser.parse('id >= 1234').to_ransack
+
+ q[:c][0].should have_attribute 'id'
+ q[:c][0].should have_predicate 'gteq'
+ q[:c][0].should have_value '1234'
+ end
+
+ it 'Less than' do
+ q = parser.parse('id < 1234').to_ransack
+
+ q[:c][0].should have_attribute 'id'
+ q[:c][0].should have_predicate 'lt'
+ q[:c][0].should have_value '1234'
+ end
+
+ it 'Less or equals than' do
+ q = parser.parse('id <= 1234').to_ransack
+
+ q[:c][0].should have_attribute 'id'
+ q[:c][0].should have_predicate 'lteq'
+ q[:c][0].should have_value '1234'
+ end
+
+ it 'Contains' do
+ q = parser.parse('id : 1234').to_ransack
+
+ q[:c][0].should have_attribute 'id'
+ q[:c][0].should have_predicate 'cont'
+ q[:c][0].should have_value '1234'
+ end
+
+ it 'Model references' do
+ q = parser.parse('models.id = 1234').to_ransack
+
+ q[:c][0].should have_attribute 'models_id'
+ q[:c][0].should have_predicate 'eq'
+ q[:c][0].should have_value '1234'
+ end
+
+ end
+
+ context 'Coordinated comparisons' do
+
+ it 'And' do
+ q = parser.parse('id > 1234 & name = abcd').to_ransack
+
+ q[:g][0][:m].should eq 'and'
+ q[:g][0][:c][0].should have_attribute 'id'
+ q[:g][0][:c][0].should have_predicate 'gt'
+ q[:g][0][:c][0].should have_value '1234'
+ q[:g][0][:c][1].should have_attribute 'name'
+ q[:g][0][:c][1].should have_predicate 'eq'
+ q[:g][0][:c][1].should have_value 'abcd'
+ end
+
+ it 'Or' do
+ q = parser.parse('id < 1234 | name : abcd').to_ransack
+
+ q[:g][0][:m].should eq 'or'
+ q[:g][0][:c][0].should have_attribute 'id'
+ q[:g][0][:c][0].should have_predicate 'lt'
+ q[:g][0][:c][0].should have_value '1234'
+ q[:g][0][:c][1].should have_attribute 'name'
+ q[:g][0][:c][1].should have_predicate 'cont'
+ q[:g][0][:c][1].should have_value 'abcd'
+ end
+
+ it 'And then Or' do
+ q = parser.parse('id > 1234 & name = abcd | name : efgh').to_ransack
+
+ q[:g][0][:m].should eq 'and'
+ q[:g][0][:c][0].should have_attribute 'id'
+ q[:g][0][:c][0].should have_predicate 'gt'
+ q[:g][0][:c][0].should have_value '1234'
+ q[:g][0][:g][0][:m].should eq 'or'
+ q[:g][0][:g][0][:c][0].should have_attribute 'name'
+ q[:g][0][:g][0][:c][0].should have_predicate 'eq'
+ q[:g][0][:g][0][:c][0].should have_value 'abcd'
+ q[:g][0][:g][0][:c][1].should have_attribute 'name'
+ q[:g][0][:g][0][:c][1].should have_predicate 'cont'
+ q[:g][0][:g][0][:c][1].should have_value 'efgh'
+ end
+
+ it 'With parentheses' do
+ q = parser.parse('(id > 1234 & name = abcd) | name : efgh').to_ransack
+
+ q[:g][0][:g][0][:m].should eq 'and'
+ q[:g][0][:g][0][:c][0].should have_attribute 'id'
+ q[:g][0][:g][0][:c][0].should have_predicate 'gt'
+ q[:g][0][:g][0][:c][0].should have_value '1234'
+ q[:g][0][:g][0][:c][1].should have_attribute 'name'
+ q[:g][0][:g][0][:c][1].should have_predicate 'eq'
+ q[:g][0][:g][0][:c][1].should have_value 'abcd'
+ q[:g][0][:m].should eq 'or'
+ q[:g][0][:c][0].should have_attribute 'name'
+ q[:g][0][:c][0].should have_predicate 'cont'
+ q[:g][0][:c][0].should have_value 'efgh'
+ end
+
+ end
+
end
\ No newline at end of file