blob: cb5f42ccb3f6182012546c803f9a694cb68115e3 [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/cupertino.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:interactive_media_ads/interactive_media_ads.dart';
import 'package:interactive_media_ads/src/platform_interface/platform_interface.dart';
import 'test_stubs.dart';
void main() {
test('init', () async {
final TestAdsManager platformManager = TestAdsManager(
onInit: expectAsync1((_) async {}),
);
final AdsManager manager = createAdsManager(platformManager);
await manager.init();
});
test('start', () async {
final TestAdsManager platformManager = TestAdsManager(
onStart: expectAsync1((_) async {}),
);
final AdsManager manager = createAdsManager(platformManager);
await manager.start();
});
test('setAdsManagerDelegate', () async {
final TestAdsManager platformManager = TestAdsManager(
onSetAdsManagerDelegate: expectAsync1((_) async {}),
);
final AdsManager manager = createAdsManager(platformManager);
await manager.setAdsManagerDelegate(AdsManagerDelegate.fromPlatform(
TestPlatformAdsManagerDelegate(
const PlatformAdsManagerDelegateCreationParams(),
),
));
});
test('destroy', () async {
final TestAdsManager platformManager = TestAdsManager(
onDestroy: expectAsync0(() async {}),
);
final AdsManager manager = createAdsManager(platformManager);
await manager.destroy();
});
}
AdsManager createAdsManager(PlatformAdsManager platformManager) {
InteractiveMediaAdsPlatform.instance = TestInteractiveMediaAdsPlatform(
onCreatePlatformAdsLoader: (PlatformAdsLoaderCreationParams params) {
return TestPlatformAdsLoader(params,
onContentComplete: () async {},
onRequestAds: (AdsRequest request) async {});
},
onCreatePlatformAdsManagerDelegate:
(PlatformAdsManagerDelegateCreationParams params) {
throw UnimplementedError();
},
onCreatePlatformAdDisplayContainer:
(PlatformAdDisplayContainerCreationParams params) {
throw UnimplementedError();
},
);
late final AdsManager manager;
final AdsLoader loader = AdsLoader(
container: AdDisplayContainer.fromPlatform(
platform: TestPlatformAdDisplayContainer(
PlatformAdDisplayContainerCreationParams(
onContainerAdded: (_) {},
),
onBuild: (_) => Container(),
),
),
onAdsLoaded: (OnAdsLoadedData data) {
manager = data.manager;
},
onAdsLoadError: (_) {},
);
loader.platform.params.onAdsLoaded(PlatformOnAdsLoadedData(
manager: platformManager,
));
return manager;
}