Skip to content
This repository has been archived by the owner on Apr 26, 2023. It is now read-only.

Commit

Permalink
Update slot opp detector, added support for new and old cores
Browse files Browse the repository at this point in the history
  • Loading branch information
VladyslavAnokhin committed Feb 3, 2019
1 parent 6a5b837 commit d82a373
Show file tree
Hide file tree
Showing 4 changed files with 149 additions and 164 deletions.
2 changes: 1 addition & 1 deletion PlayerCore
Original file line number Diff line number Diff line change
Expand Up @@ -8,26 +8,17 @@ extension Detectors {
var playbackInitiated = false
var sessionID: UUID?

func process(sessionID: UUID,
adPlaying: Bool,
adSkipped: Bool,
adFailed: Bool,
contentPlaying: Bool) -> Bool {
func process(sessionID: UUID, playbackStarted: Bool) -> Bool {
if self.sessionID != sessionID {
self.sessionID = sessionID
playbackInitiated = false
}

guard playbackInitiated == false else { return false }
switch (adSkipped, contentPlaying, adPlaying, adFailed) {
case (true, true, _, false),
(_, true, _, true),
(false, _, true, false):
playbackInitiated = true
return true

default: return false
}
guard playbackInitiated == false,
playbackStarted else { return false }

playbackInitiated = true
return true
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,97 +13,23 @@ class SlotOpportunityDetectorTests: XCTestCase {
sut = Detectors.SlotOpportunity()
}

override func tearDown() {
sut = nil

super.tearDown()
}

func testAdPlayingProcess() {
let id = UUID()
var result = sut.process(sessionID: id,
adPlaying: false,
adSkipped: false,
adFailed: false,
contentPlaying: false)
XCTAssertFalse(result)
result = sut.process(sessionID: id,
adPlaying: true,
adSkipped: false,
adFailed: false,
contentPlaying: false)
XCTAssertTrue(result)

result = sut.process(sessionID: id,
adPlaying: true,
adSkipped: false,
adFailed: false,
contentPlaying: false)
XCTAssertFalse(result)
}

func testAdSkipProcess() {
func testPlayingProcess() {
let id = UUID()
var result = sut.process(sessionID: id,
adPlaying: false,
adSkipped: true,
adFailed: false,
contentPlaying: false)
var result = sut.process(sessionID: id, playbackStarted: false)
XCTAssertFalse(result)

result = sut.process(sessionID: id,
adPlaying: false,
adSkipped: true,
adFailed: false,
contentPlaying: true)
result = sut.process(sessionID: id, playbackStarted: true)
XCTAssertTrue(result)

result = sut.process(sessionID: id,
adPlaying: false,
adSkipped: true,
adFailed: false,
contentPlaying: true)
result = sut.process(sessionID: id, playbackStarted: true)
XCTAssertFalse(result)
}

func testAdFailProcess() {
let id = UUID()
var result = sut.process(sessionID: id,
adPlaying: false,
adSkipped: false,
adFailed: true,
contentPlaying: false)
XCTAssertFalse(result)

result = sut.process(sessionID: id,
adPlaying: false,
adSkipped: false,
adFailed: true,
contentPlaying: true)
XCTAssertTrue(result)

result = sut.process(sessionID: id,
adPlaying: false,
adSkipped: false,
adFailed: true,
contentPlaying: true)
XCTAssertFalse(result)
}

func testSessionChnageProcess() {
let id = UUID()
_ = sut.process(sessionID: id,
adPlaying: true,
adSkipped: false,
adFailed: false,
contentPlaying: false)
func testSessionChanageProcess() {
_ = sut.process(sessionID: UUID(), playbackStarted: true)
XCTAssertTrue(sut.playbackInitiated)

_ = sut.process(sessionID: UUID(),
adPlaying: false,
adSkipped: false,
adFailed: false,
contentPlaying: false)
_ = sut.process(sessionID: UUID(), playbackStarted: false)
XCTAssertFalse(sut.playbackInitiated)
}
}
Loading

0 comments on commit d82a373

Please sign in to comment.