Skip to content
Snippets Groups Projects
state_test.go 1.71 KiB
Newer Older
  • Learn to ignore specific revisions
  • /*
     * Copyright 2015 Manish R Jain <manishrjain@gmail.com>
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     * 		http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
    
    
    )
    
    func TestNewLexer(t *testing.T) {
    	input := `
    
    Manish R Jain's avatar
    Manish R Jain committed
    		me( id: 10, xid: rick ) {
    
    			name0 # my name
    			_city, # 0what would fail lex.
    
    Manish R Jain's avatar
    Manish R Jain committed
    			profilePic(width: 100, height: 100)
    
    	l := lex.NewLexer(input)
    	go run(l)
    	for item := range l.Items {
    
    		if item.Typ == lex.ItemError {
    			t.Error(item.String())
    		}
    		t.Log(item.String())
    	}
    }
    
    func TestNewLexerMutation(t *testing.T) {
    	input := `
    	mutation {
    		set {
    			What is <this> .
    			Why is this #!!?
    			How is this?
    		}
    		delete {
    			Why is this
    		}
    	}
    	query {
    		me(xid: rick) {
    			_city
    		}
    	}`
    	l := lex.NewLexer(input)
    	go run(l)
    	for item := range l.Items {
    		if item.Typ == lex.ItemError {
    			t.Error(item.String())
    		}
    		t.Log(item.String())
    	}
    }
    
    func TestAbruptMutation(t *testing.T) {
    	input := `
    	mutation {
    		set {
    			What is <this> .
    			Why is this #!!?
    			How is this?
    	}`
    	l := lex.NewLexer(input)
    	go run(l)
    	var typ lex.ItemType
    	for item := range l.Items {
    		t.Log(item.String())
    		typ = item.Typ
    	}
    	if typ != lex.ItemError {
    		t.Error("This should fail.")