blob: d81876760b28e919341092d0de4e2ae621cb39bf [file] [log] [blame] [edit]
import 'package:test/test.dart';
import 'package:web_generator/src/interop_gen/namer.dart';
void main() {
group('Namer Test', () {
final namer = UniqueNamer();
test('Names', () {
var newName = namer.makeUnique('foo', 'fun');
expectNameMatches(newName, 'foo', 'fun');
newName = namer.makeUnique('bar', 'fun');
expectNameMatches(newName, 'bar', 'fun');
newName = namer.makeUnique('bar', 'var');
expectNameMatches(newName, r'bar$1', 'var');
newName = namer.makeUnique('bar', 'var');
expectNameMatches(newName, r'bar$2', 'var');
newName = namer.makeUnique('box', 'var');
expectNameMatches(newName, 'box', 'var');
newName = namer.makeUnique('foo', 'fun');
expectNameMatches(newName, r'foo$1', 'fun');
});
});
group('Scoped Namer Test', () {
final namer = ScopedUniqueNamer({'get', 'set'});
test('Names', () {
var newName = namer.makeUnique('foo', 'fun');
expectNameMatches(newName, 'foo', 'fun');
newName = namer.makeUnique('bar', 'get');
expectNameMatches(newName, 'bar', 'get');
newName = namer.makeUnique('bar', 'set');
expectNameMatches(newName, 'bar', 'set');
newName = namer.makeUnique('bar', 'var');
expectNameMatches(newName, r'bar$1', 'var');
newName = namer.makeUnique('box', 'var');
expectNameMatches(newName, 'box', 'var');
newName = namer.makeUnique('foo', 'fun');
expectNameMatches(newName, r'foo$1', 'fun');
});
});
}
void expectNameMatches(
({ID id, String name}) name, String newName, String type) {
expect(name.name, newName);
expect(name.id.type, type);
}