blob: 56963ddbdd91bb8fe5af9326879adc33add9fff5 [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_android/src/utils/cluster_manager_utils.dart';
import 'package:google_maps_flutter_platform_interface/google_maps_flutter_platform_interface.dart';
void main() {
test('serializeClusterManagerUpdates', () async {
const ClusterManagerId clusterManagerId1 = ClusterManagerId('cm1');
const ClusterManagerId clusterManagerId2 = ClusterManagerId('cm2');
const ClusterManager clusterManager1 = ClusterManager(
clusterManagerId: clusterManagerId1,
);
const ClusterManager clusterManager2 = ClusterManager(
clusterManagerId: clusterManagerId2,
);
final Set<ClusterManager> clusterManagersSet1 = <ClusterManager>{};
final Set<ClusterManager> clusterManagersSet2 = <ClusterManager>{
clusterManager1,
clusterManager2
};
final Set<ClusterManager> clusterManagersSet3 = <ClusterManager>{
clusterManager1
};
final ClusterManagerUpdates clusterManagerUpdates1 =
ClusterManagerUpdates.from(clusterManagersSet1, clusterManagersSet2);
final Map<String, Object> serializedData1 =
serializeClusterManagerUpdates(clusterManagerUpdates1)
as Map<String, Object>;
expect(serializedData1['clusterManagersToAdd'], isNotNull);
final List<Object> clusterManagersToAdd1 =
serializedData1['clusterManagersToAdd']! as List<Object>;
expect(clusterManagersToAdd1.length, 2);
expect(serializedData1['clusterManagerIdsToRemove'], isNotNull);
final List<Object> clusterManagersToRemove1 =
serializedData1['clusterManagerIdsToRemove']! as List<Object>;
expect(clusterManagersToRemove1.length, 0);
final ClusterManagerUpdates clusterManagerUpdates2 =
ClusterManagerUpdates.from(clusterManagersSet2, clusterManagersSet3);
serializeClusterManagerUpdates(clusterManagerUpdates2);
final Map<String, Object> serializedData2 =
serializeClusterManagerUpdates(clusterManagerUpdates2)
as Map<String, Object>;
expect(serializedData2['clusterManagersToAdd'], isNotNull);
final List<Object> clusterManagersToAdd2 =
serializedData2['clusterManagersToAdd']! as List<Object>;
expect(clusterManagersToAdd2.length, 0);
expect(serializedData1['clusterManagerIdsToRemove'], isNotNull);
final List<Object> clusterManagersToRemove2 =
serializedData2['clusterManagerIdsToRemove']! as List<Object>;
expect(clusterManagersToRemove2.length, 1);
expect(clusterManagersToRemove2.first as String, equals('cm2'));
});
}