X-Git-Url: https://review.fuel-infra.org/gitweb?a=blobdiff_plain;f=spec%2Funit%2Fmatcher%2Fscanner_spec.rb;fp=spec%2Funit%2Fmatcher%2Fscanner_spec.rb;h=0000000000000000000000000000000000000000;hb=d1f1649ba43c5cbc43c4beb2380096ba051d646a;hp=a0bdd149ab84aa28a28f09da4602fa1502803cf9;hpb=8a3fe7daeecccf43dd71c59371c5005400d35101;p=packages%2Fprecise%2Fmcollective.git diff --git a/spec/unit/matcher/scanner_spec.rb b/spec/unit/matcher/scanner_spec.rb deleted file mode 100755 index a0bdd14..0000000 --- a/spec/unit/matcher/scanner_spec.rb +++ /dev/null @@ -1,174 +0,0 @@ -#! /usr/bin/env rspec - -require 'spec_helper' - -module MCollective - module Matcher - describe 'scanner' do - it "should identify a '(' token" do - scanner = Scanner.new("(") - token = scanner.get_token - token.should == ["(", "("] - end - - it "should identify a ')' token" do - scanner = Scanner.new(")") - token = scanner.get_token - token.should == [")", ")"] - end - - it "should identify a 'and' token" do - scanner = Scanner.new("and ") - token = scanner.get_token - token.should == ["and", "and"] - end - - it "should identify a 'or' token" do - scanner = Scanner.new("or ") - token = scanner.get_token - token.should == ["or", "or"] - end - - it "should identify a 'not' token" do - scanner = Scanner.new("not ") - token = scanner.get_token - token.should == ["not", "not"] - end - - it "should identify a '!' token" do - scanner = Scanner.new("!") - token = scanner.get_token - token.should == ["not", "not"] - end - - it "should identify a fact statement token" do - scanner = Scanner.new("foo=bar") - token = scanner.get_token - token.should == ["statement", "foo=bar"] - end - - it "should identify a fact statement token" do - scanner = Scanner.new("foo=bar") - token = scanner.get_token - token.should == ["statement", "foo=bar"] - end - - it "should identify a class statement token" do - scanner = Scanner.new("/class/") - token = scanner.get_token - token.should == ["statement", "/class/"] - end - - it "should identify a function statement token with a dot value" do - scanner = Scanner.new("foo('bar').baz") - token = scanner.get_token - token.should == ["fstatement", "foo('bar').baz"] - end - - it "should identify a function statement token without a dot value" do - scanner = Scanner.new("foo('bar')") - token = scanner.get_token - token.should == ["fstatement", "foo('bar')"] - end - - it "should identify a function statement with multiple parameters" do - scanner = Scanner.new("foo('bar','baz')") - token = scanner.get_token - token.should == ["fstatement", "foo('bar','baz')"] - end - - it "should identify a bad token when a function is missing its end bracket" do - scanner = Scanner.new("foo(") - token = scanner.get_token - token.should == ["bad_token", [0,3]] - end - - it "should identify a bad token when there is a regex before a comparison operator" do - scanner = Scanner.new("/foo/=bar") - token = scanner.get_token - token.should == ["bad_token", [0,8]] - end - - it "should identify a bad token where there is a forward slash before a comparison operator" do - scanner = Scanner.new("/foo=bar") - token = scanner.get_token - token.should == ["bad_token", [0,7]] - end - - it "should identify a bad token where there is only one forward slash after a comparison operator" do - scanner = Scanner.new("foo=/bar") - token = scanner.get_token - token.should == ["bad_token", [0,7]] - end - - it "should identify a bad token where function parameters are not in single quotes" do - scanner = Scanner.new("foo(bar)") - token = scanner.get_token - token.should == ["bad_token", [0,7]] - end - - it "should identify a bad token where there are non alphanumerical or underscore chars in the dot value" do - scanner = Scanner.new("foo('bar').val-ue") - token = scanner.get_token - token.should == ["bad_token", [0,16]] - end - - it "should identify a bad token where there are chained dot values" do - scanner = Scanner.new("foo('bar').a.b") - token = scanner.get_token - token.should == ["bad_token", [0,13]] - end - - it "should identify bad tokens where function parameters are not comma seperated" do - scanner = Scanner.new("foo('a' 'b')") - token = scanner.get_token - token.should == ["bad_token", [0,11]] - - scanner = Scanner.new("foo(\"a\" \"b\")") - token = scanner.get_token - token.should == ["bad_token", [0,11]] - - end - - it "should identify fstatement tokens where the values and the comparison operator are seperated by whitespaces" do - scanner = Scanner.new("foo('a').bar = 1") - token = scanner.get_token - token.should == ["fstatement", "foo('a').bar=1"] - end - - it "should identify statement tokens where the values and the comparison operator are seperated by whitespaces" do - scanner = Scanner.new("a = c") - token = scanner.get_token - token.should == ["statement", "a=c"] - end - - it "should idenify a function statement where a parameter is an empty string" do - scanner = Scanner.new("foo('')") - token = scanner.get_token - token.should == ["fstatement", "foo('')"] - end - - it "should correctly tokenize a statement with escaped qoutes in parameters" do - scanner = Scanner.new("foo('\"bar\"')") - token = scanner.get_token - token.should == ["fstatement", "foo('\"bar\"')"] - - scanner = Scanner.new('foo("\'bar\'")') - token =scanner.get_token - token.should == ["fstatement", "foo(\"'bar'\")"] - end - - it "should correctly tokenize a statement where a regular expression contains parentheses" do - scanner = Scanner.new("foo=/bar(1|2)/") - token = scanner.get_token - token.should == ["statement", "foo=/bar(1|2)/"] - end - - it "should correctly tokenize a statement with a comparison operator in a parameter" do - scanner = Scanner.new("foo('bar=baz')") - token = scanner.get_token - token.should == ["fstatement", "foo('bar=baz')"] - end - end - end -end