blob: fe5d86335af323d144e86c6d4bd6dfa801b86b98 [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:flutter_test/flutter_test.dart';
import 'package:google_maps_flutter_platform_interface/google_maps_flutter_platform_interface.dart';
class _TestTileProvider extends TileProvider {
@override
Future<Tile> getTile(int x, int y, int? zoom) async {
return const Tile(0, 0, null);
}
}
void main() {
TestWidgetsFlutterBinding.ensureInitialized();
group('tile overlay id tests', () {
test('equality', () async {
const TileOverlayId id1 = TileOverlayId('1');
const TileOverlayId id2 = TileOverlayId('1');
const TileOverlayId id3 = TileOverlayId('2');
expect(id1, id2);
expect(id1, isNot(id3));
});
test('toString', () async {
const TileOverlayId id1 = TileOverlayId('1');
expect(id1.toString(), 'TileOverlayId(1)');
});
});
group('tile overlay tests', () {
test('toJson returns correct format', () async {
const TileOverlay tileOverlay = TileOverlay(
tileOverlayId: TileOverlayId('id'),
fadeIn: false,
transparency: 0.1,
zIndex: 1,
visible: false,
tileSize: 128);
final Object json = tileOverlay.toJson();
expect(json, <String, Object>{
'tileOverlayId': 'id',
'fadeIn': false,
'transparency': moreOrLessEquals(0.1),
'zIndex': 1,
'visible': false,
'tileSize': 128,
});
});
test('invalid transparency throws', () async {
expect(
() => TileOverlay(
tileOverlayId: const TileOverlayId('id1'), transparency: -0.1),
throwsAssertionError);
expect(
() => TileOverlay(
tileOverlayId: const TileOverlayId('id2'), transparency: 1.2),
throwsAssertionError);
});
test('equality', () async {
final TileProvider tileProvider = _TestTileProvider();
final TileOverlay tileOverlay1 = TileOverlay(
tileOverlayId: const TileOverlayId('id1'),
fadeIn: false,
tileProvider: tileProvider,
transparency: 0.1,
zIndex: 1,
visible: false,
tileSize: 128);
final TileOverlay tileOverlaySameValues = TileOverlay(
tileOverlayId: const TileOverlayId('id1'),
fadeIn: false,
tileProvider: tileProvider,
transparency: 0.1,
zIndex: 1,
visible: false,
tileSize: 128);
final TileOverlay tileOverlayDifferentId = TileOverlay(
tileOverlayId: const TileOverlayId('id2'),
fadeIn: false,
tileProvider: tileProvider,
transparency: 0.1,
zIndex: 1,
visible: false,
tileSize: 128);
const TileOverlay tileOverlayDifferentProvider = TileOverlay(
tileOverlayId: TileOverlayId('id1'),
fadeIn: false,
transparency: 0.1,
zIndex: 1,
visible: false,
tileSize: 128);
expect(tileOverlay1, tileOverlaySameValues);
expect(tileOverlay1, isNot(tileOverlayDifferentId));
expect(tileOverlay1, isNot(tileOverlayDifferentProvider));
});
test('clone', () async {
final TileProvider tileProvider = _TestTileProvider();
// Set non-default values for every parameter.
final TileOverlay tileOverlay = TileOverlay(
tileOverlayId: const TileOverlayId('id1'),
fadeIn: false,
tileProvider: tileProvider,
transparency: 0.1,
zIndex: 1,
visible: false,
tileSize: 128);
expect(tileOverlay, tileOverlay.clone());
});
test('hashCode', () async {
final TileProvider tileProvider = _TestTileProvider();
const TileOverlayId id = TileOverlayId('id1');
final TileOverlay tileOverlay = TileOverlay(
tileOverlayId: id,
fadeIn: false,
tileProvider: tileProvider,
transparency: 0.1,
zIndex: 1,
visible: false,
tileSize: 128);
expect(
tileOverlay.hashCode,
Object.hash(
tileOverlay.tileOverlayId,
tileOverlay.fadeIn,
tileOverlay.tileProvider,
tileOverlay.transparency,
tileOverlay.zIndex,
tileOverlay.visible,
tileOverlay.tileSize));
});
});
}