Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
impl of the imaadpodinfo
  • Loading branch information
bparrishMines committed Dec 4, 2024
commit 872d971b177ae0fcc1038801d78edb22a2d10579
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
8F599BBD2C332CFE0090A0DF /* ContentPlayheadTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F599BBC2C332CFE0090A0DF /* ContentPlayheadTests.swift */; };
8F599BBF2C3335B40090A0DF /* ViewControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F599BBE2C3335B40090A0DF /* ViewControllerTests.swift */; };
8F8382A32CBDB4A4007F28E0 /* CompanionAdProxyApiTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F8382A22CBDB4A4007F28E0 /* CompanionAdProxyApiTests.swift */; };
8F9035362D00D9A1004F6450 /* AdPodInfoProxyAPITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F9035352D00D9A1004F6450 /* AdPodInfoProxyAPITests.swift */; };
8F977DCF2C2B99C600A90D4B /* AdDisplayContainerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F977DCE2C2B99C600A90D4B /* AdDisplayContainerTests.swift */; };
8F977DD32C2BA15100A90D4B /* TestProxyApiRegistrar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F977DD22C2BA15100A90D4B /* TestProxyApiRegistrar.swift */; };
8F977DD52C2C777600A90D4B /* AdErrorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F977DD42C2C777600A90D4B /* AdErrorTests.swift */; };
Expand Down Expand Up @@ -82,6 +83,7 @@
8F599BBC2C332CFE0090A0DF /* ContentPlayheadTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentPlayheadTests.swift; sourceTree = "<group>"; };
8F599BBE2C3335B40090A0DF /* ViewControllerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewControllerTests.swift; sourceTree = "<group>"; };
8F8382A22CBDB4A4007F28E0 /* CompanionAdProxyApiTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompanionAdProxyApiTests.swift; sourceTree = "<group>"; };
8F9035352D00D9A1004F6450 /* AdPodInfoProxyAPITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdPodInfoProxyAPITests.swift; sourceTree = "<group>"; };
8F977DCE2C2B99C600A90D4B /* AdDisplayContainerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdDisplayContainerTests.swift; sourceTree = "<group>"; };
8F977DD22C2BA15100A90D4B /* TestProxyApiRegistrar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestProxyApiRegistrar.swift; sourceTree = "<group>"; };
8F977DD42C2C777600A90D4B /* AdErrorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdErrorTests.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -142,6 +144,7 @@
8F8382A22CBDB4A4007F28E0 /* CompanionAdProxyApiTests.swift */,
8FFF0C172CC1A7F300A7CB98 /* CompanionAdSlotProxyApiTests.swift */,
8FFF0C192CC1A97B00A7CB98 /* CompanionDelegateProxyApiTests.swift */,
8F9035352D00D9A1004F6450 /* AdPodInfoProxyAPITests.swift */,
);
path = RunnerTests;
sourceTree = "<group>";
Expand Down Expand Up @@ -436,6 +439,7 @@
8F599BB92C332A320090A0DF /* AdsRenderingSettingsTests.swift in Sources */,
8F977DD52C2C777600A90D4B /* AdErrorTests.swift in Sources */,
8F599BB12C2DD1FD0090A0DF /* AdsManagerTests.swift in Sources */,
8F9035362D00D9A1004F6450 /* AdPodInfoProxyAPITests.swift in Sources */,
8F977DDB2C2C8D2E00A90D4B /* AdsLoadedDataTests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
// 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 GoogleInteractiveMediaAds
import Flutter
import XCTest

@testable import interactive_media_ads

class AdPodInfoProxyAPITests: XCTestCase {
func testAdPosition() {
let registrar = TestProxyApiRegistrar()
let api = registrar.apiDelegate.pigeonApiIMAAdPodInfo(registrar)

let instance = TestAdPodInfo.customInit()
let value = try? api.pigeonDelegate.adPosition(pigeonApi: api, pigeonInstance: instance)

XCTAssertEqual(value, Int64(instance.adPosition))
}

func testMaxDuration() {
let registrar = TestProxyApiRegistrar()
let api = registrar.apiDelegate.pigeonApiIMAAdPodInfo(registrar)

let instance = TestAdPodInfo.customInit()
let value = try? api.pigeonDelegate.maxDuration(pigeonApi: api, pigeonInstance: instance)

XCTAssertEqual(value, instance.maxDuration)
}

func testPodIndex() {
let registrar = TestProxyApiRegistrar()
let api = registrar.apiDelegate.pigeonApiIMAAdPodInfo(registrar)

let instance = TestAdPodInfo.customInit()
let value = try? api.pigeonDelegate.podIndex(pigeonApi: api, pigeonInstance: instance)

XCTAssertEqual(value, Int64(instance.podIndex))
}

func testTimeOffset() {
let registrar = TestProxyApiRegistrar()
let api = registrar.apiDelegate.pigeonApiIMAAdPodInfo(registrar)

let instance = TestAdPodInfo.customInit()
let value = try? api.pigeonDelegate.timeOffset(pigeonApi: api, pigeonInstance: instance)

XCTAssertEqual(value, instance.timeOffset)
}

func testTotalAds() {
let registrar = TestProxyApiRegistrar()
let api = registrar.apiDelegate.pigeonApiIMAAdPodInfo(registrar)

let instance = TestAdPodInfo.customInit()
let value = try? api.pigeonDelegate.totalAds(pigeonApi: api, pigeonInstance: instance)

XCTAssertEqual(value, Int64(instance.totalAds))
}

func testIsBumper() {
let registrar = TestProxyApiRegistrar()
let api = registrar.apiDelegate.pigeonApiIMAAdPodInfo(registrar)

let instance = TestAdPodInfo.customInit()
let value = try? api.pigeonDelegate.isBumper(pigeonApi: api, pigeonInstance: instance)

XCTAssertEqual(value, instance.isBumper)
}
}

class TestAdPodInfo: IMAAdPodInfo {
// Workaround to subclass an Objective-C class that has an `init` constructor with NS_UNAVAILABLE
static func customInit() -> TestAdPodInfo {
let instance =
TestAdPodInfo.perform(NSSelectorFromString("new")).takeRetainedValue() as! TestAdPodInfo
return instance
}

override var adPosition: Int {
return 5
}

override var maxDuration: TimeInterval {
return 2.0
}

override var podIndex: Int {
return 3
}

override var timeOffset: TimeInterval {
return 6.0
}

override var totalAds: Int {
return 7
}

override var isBumper: Bool {
return false
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
// 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 Foundation
import GoogleInteractiveMediaAds

/// ProxyApi implementation for `IMAAdPodInfo`.
///
/// This class may handle instantiating native object instances that are attached to a Dart instance
/// or handle method calls on the associated native class or an instance of that class.
class AdPodInfoProxyAPIDelegate : PigeonApiDelegateIMAAdPodInfo {
func adPosition(pigeonApi: PigeonApiIMAAdPodInfo, pigeonInstance: IMAAdPodInfo) throws -> Int64 {
return Int64(pigeonInstance.adPosition)
}

func maxDuration(pigeonApi: PigeonApiIMAAdPodInfo, pigeonInstance: IMAAdPodInfo) throws -> Double {
return pigeonInstance.maxDuration
}

func podIndex(pigeonApi: PigeonApiIMAAdPodInfo, pigeonInstance: IMAAdPodInfo) throws -> Int64 {
return Int64(pigeonInstance.podIndex)
}

func timeOffset(pigeonApi: PigeonApiIMAAdPodInfo, pigeonInstance: IMAAdPodInfo) throws -> Double {
return pigeonInstance.timeOffset
}

func totalAds(pigeonApi: PigeonApiIMAAdPodInfo, pigeonInstance: IMAAdPodInfo) throws -> Int64 {
return Int64(pigeonInstance.totalAds)
}

func isBumper(pigeonApi: PigeonApiIMAAdPodInfo, pigeonInstance: IMAAdPodInfo) throws -> Bool {
return pigeonInstance.isBumper
}
}
Loading