@@ -293,6 +293,130 @@ void main() {
293
293
},
294
294
);
295
295
296
+ test (
297
+ 'Given a class name with reserved value Endpoints, then give an error that the class name is reserved.' ,
298
+ () {
299
+ var models = [
300
+ ModelSourceBuilder ().withYaml (
301
+ '''
302
+ class: Endpoints
303
+ fields:
304
+ name: String
305
+ ''' ,
306
+ ).build ()
307
+ ];
308
+
309
+ var collector = CodeGenerationCollector ();
310
+ StatefulAnalyzer (config, models, onErrorsCollector (collector))
311
+ .validateAll ();
312
+
313
+ expect (
314
+ collector.errors,
315
+ isNotEmpty,
316
+ reason: 'Expected an error but none was generated.' ,
317
+ );
318
+
319
+ var error = collector.errors.first;
320
+ expect (
321
+ error.message,
322
+ 'The class name "Endpoints" is reserved and cannot be used.' ,
323
+ );
324
+ },
325
+ );
326
+
327
+ test (
328
+ 'Given a class name with reserved value DateTime, then give an error that the class name is reserved.' ,
329
+ () {
330
+ var models = [
331
+ ModelSourceBuilder ().withYaml (
332
+ '''
333
+ class: DateTime
334
+ fields:
335
+ name: String
336
+ ''' ,
337
+ ).build ()
338
+ ];
339
+
340
+ var collector = CodeGenerationCollector ();
341
+ StatefulAnalyzer (config, models, onErrorsCollector (collector))
342
+ .validateAll ();
343
+
344
+ expect (
345
+ collector.errors,
346
+ isNotEmpty,
347
+ reason: 'Expected an error but none was generated.' ,
348
+ );
349
+
350
+ var error = collector.errors.first;
351
+ expect (
352
+ error.message,
353
+ 'The class name "DateTime" is reserved and cannot be used.' ,
354
+ );
355
+ },
356
+ );
357
+
358
+ test (
359
+ 'Given a class name with reserved value Protocol, then give an error that the class name is reserved.' ,
360
+ () {
361
+ var models = [
362
+ ModelSourceBuilder ().withYaml (
363
+ '''
364
+ class: Protocol
365
+ fields:
366
+ name: String
367
+ ''' ,
368
+ ).build ()
369
+ ];
370
+
371
+ var collector = CodeGenerationCollector ();
372
+ StatefulAnalyzer (config, models, onErrorsCollector (collector))
373
+ .validateAll ();
374
+
375
+ expect (
376
+ collector.errors,
377
+ isNotEmpty,
378
+ reason: 'Expected an error but none was generated.' ,
379
+ );
380
+
381
+ var error = collector.errors.first;
382
+ expect (
383
+ error.message,
384
+ 'The class name "Protocol" is reserved and cannot be used.' ,
385
+ );
386
+ },
387
+ );
388
+
389
+ test (
390
+ 'Given a class name with reserved value Client, then give an error that the class name is reserved.' ,
391
+ () {
392
+ var models = [
393
+ ModelSourceBuilder ().withYaml (
394
+ '''
395
+ class: Client
396
+ fields:
397
+ name: String
398
+ ''' ,
399
+ ).build ()
400
+ ];
401
+
402
+ var collector = CodeGenerationCollector ();
403
+ StatefulAnalyzer (config, models, onErrorsCollector (collector))
404
+ .validateAll ();
405
+
406
+ expect (
407
+ collector.errors,
408
+ isNotEmpty,
409
+ reason: 'Expected an error but none was generated.' ,
410
+ );
411
+
412
+ var error = collector.errors.first;
413
+ expect (
414
+ error.message,
415
+ 'The class name "Client" is reserved and cannot be used.' ,
416
+ );
417
+ },
418
+ );
419
+
296
420
group ('Given a model without any defined model type' , () {
297
421
test (
298
422
'Then return a human readable error message informing the user that the model type is missing.' ,
0 commit comments