| OLD | NEW | 
|---|
|  | (Empty) | 
| 1 // Copyright (c) 2015, the Dartino project authors. Please see the AUTHORS file |  | 
| 2 // for details. All rights reserved. Use of this source code is governed by a |  | 
| 3 // BSD-style license that can be found in the LICENSE.md file. |  | 
| 4 |  | 
| 5 import 'dart:async' show |  | 
| 6     Future; |  | 
| 7 |  | 
| 8 import 'package:fletchc/src/hub/sentence_parser.dart'; |  | 
| 9 |  | 
| 10 import 'package:expect/expect.dart'; |  | 
| 11 |  | 
| 12 Future main() { |  | 
| 13   Sentence sentence; |  | 
| 14 |  | 
| 15   void checkAction(String name) { |  | 
| 16     Expect.isNotNull(sentence.verb); |  | 
| 17     Expect.stringEquals(name, sentence.verb.name); |  | 
| 18     print("Action '$name' as expected."); |  | 
| 19   } |  | 
| 20 |  | 
| 21   void checkTarget(TargetKind kind) { |  | 
| 22     Expect.isNotNull(sentence.targets.single); |  | 
| 23     Expect.equals(kind, sentence.targets.single.kind); |  | 
| 24     print("Target '$kind' as expected."); |  | 
| 25   } |  | 
| 26 |  | 
| 27   void checkNamedTarget(TargetKind kind, String name) { |  | 
| 28     Expect.isNotNull(sentence.targets.single); |  | 
| 29     NamedTarget namedTarget = sentence.targets.single; |  | 
| 30     Expect.equals(kind, namedTarget.kind); |  | 
| 31     Expect.stringEquals(name, namedTarget.name); |  | 
| 32     print("NamedTarget '$kind $name' as expected."); |  | 
| 33   } |  | 
| 34 |  | 
| 35   void checkNoTarget() { |  | 
| 36     Expect.isTrue(sentence.targets.isEmpty); |  | 
| 37     print("No target as expected."); |  | 
| 38   } |  | 
| 39 |  | 
| 40   sentence = parseSentence([]); |  | 
| 41   print(sentence); |  | 
| 42   checkAction('help'); |  | 
| 43   Expect.isTrue(sentence.prepositions.isEmpty); |  | 
| 44   checkNoTarget(); |  | 
| 45   Expect.isNull(sentence.trailing); |  | 
| 46 |  | 
| 47   sentence = parseSentence(['not_a_verb']); |  | 
| 48   print(sentence); |  | 
| 49   checkAction('not_a_verb'); |  | 
| 50   Expect.isTrue(sentence.prepositions.isEmpty); |  | 
| 51   checkNoTarget(); |  | 
| 52   Expect.isNotNull(sentence.trailing); |  | 
| 53   Expect.listEquals(['not_a_verb'], sentence.trailing); |  | 
| 54 |  | 
| 55   sentence = parseSentence(['create', 'session', 'fisk']); |  | 
| 56   print(sentence); |  | 
| 57   checkAction('create'); |  | 
| 58   Expect.isTrue(sentence.prepositions.isEmpty); |  | 
| 59   checkNamedTarget(TargetKind.SESSION, 'fisk'); |  | 
| 60   Expect.isNull(sentence.trailing); |  | 
| 61 |  | 
| 62   void checkCreateFooInFisk() { |  | 
| 63     Expect.isNotNull(sentence.verb); |  | 
| 64     Expect.stringEquals('create', sentence.verb.name); |  | 
| 65     Preposition preposition = sentence.prepositions.single; |  | 
| 66     Expect.isNotNull(preposition); |  | 
| 67     Expect.equals(PrepositionKind.IN, preposition.kind); |  | 
| 68     NamedTarget namedTarget = preposition.target; |  | 
| 69     Expect.isNotNull(namedTarget); |  | 
| 70     Expect.equals(TargetKind.SESSION, namedTarget.kind); |  | 
| 71     Expect.stringEquals('fisk', namedTarget.name); |  | 
| 72     checkNamedTarget(TargetKind.CLASS, 'Foo'); |  | 
| 73     Expect.isNull(sentence.trailing); |  | 
| 74   } |  | 
| 75   sentence = parseSentence(['create', 'in', 'session', 'fisk', 'class', 'Foo']); |  | 
| 76   print(sentence); |  | 
| 77   checkCreateFooInFisk(); |  | 
| 78 |  | 
| 79   sentence = parseSentence(['create', 'class', 'Foo', 'in', 'session', 'fisk']); |  | 
| 80   print(sentence); |  | 
| 81   checkCreateFooInFisk(); |  | 
| 82 |  | 
| 83   sentence = parseSentence(['create', 'in', 'fisk']); |  | 
| 84   print(sentence); |  | 
| 85   checkAction('create'); |  | 
| 86   Expect.isNotNull(sentence.prepositions.single); |  | 
| 87   Expect.equals(PrepositionKind.IN, sentence.prepositions.single.kind); |  | 
| 88   Expect.isTrue(sentence.prepositions.single.target is ErrorTarget); |  | 
| 89   checkNoTarget(); |  | 
| 90   Expect.isNull(sentence.trailing); |  | 
| 91 |  | 
| 92   sentence = parseSentence(['create', 'in', 'fisk', 'fisk']); |  | 
| 93   print(sentence); |  | 
| 94   checkAction('create'); |  | 
| 95   Expect.isNotNull(sentence.prepositions.single); |  | 
| 96   Expect.equals(PrepositionKind.IN, sentence.prepositions.single.kind); |  | 
| 97   Expect.isTrue(sentence.prepositions.single.target is ErrorTarget); |  | 
| 98   checkNoTarget(); |  | 
| 99   Expect.isNotNull(sentence.trailing); |  | 
| 100   Expect.listEquals(['fisk'], sentence.trailing); |  | 
| 101 |  | 
| 102   sentence = parseSentence(['help', 'all']); |  | 
| 103   print(sentence); |  | 
| 104   checkAction('help'); |  | 
| 105   Expect.isTrue(sentence.prepositions.isEmpty); |  | 
| 106   checkTarget(TargetKind.ALL); |  | 
| 107   Expect.isNull(sentence.trailing); |  | 
| 108 |  | 
| 109   return new Future.value(); |  | 
| 110 } |  | 
| OLD | NEW | 
|---|