Skip to content

Commit 4d15c4a

Browse files
Added Test Sequence as a test harness
1 parent db4519b commit 4d15c4a

File tree

3 files changed

+60
-0
lines changed

3 files changed

+60
-0
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,8 @@
1+
//
2+
// AsyncSequenceReader.swift
3+
// AsyncSequenceReader
4+
//
5+
// Created by Dimitri Bouniol on 2021-11-16.
6+
// Copyright © 2021 Mochi Development, Inc. All rights reserved.
7+
//
18

Tests/AsyncSequenceReaderTests/AsyncSequenceReaderTests.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
//
2+
// AsyncSequenceReaderTests.swift
3+
// AsyncSequenceReader
4+
//
5+
// Created by Dimitri Bouniol on 2021-11-16.
6+
// Copyright © 2021 Mochi Development, Inc. All rights reserved.
7+
//
8+
19
import XCTest
210
@testable import AsyncSequenceReader
311

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
//
2+
// TestSequence.swift
3+
// AsyncSequenceReader
4+
//
5+
// Created by Dimitri Bouniol on 2021-11-16.
6+
// Copyright © 2021 Mochi Development, Inc. All rights reserved.
7+
//
8+
9+
import Foundation
10+
11+
struct TestSequence<Base>: AsyncSequence where Base: Sequence {
12+
typealias Element = Base.Element
13+
14+
var base: Base
15+
16+
struct AsyncIterator: AsyncIteratorProtocol {
17+
var baseIterator: Base.Iterator
18+
19+
mutating func next() async -> Base.Iterator.Element? {
20+
baseIterator.next()
21+
}
22+
}
23+
24+
func makeAsyncIterator() -> AsyncIterator {
25+
AsyncIterator(baseIterator: base.makeIterator())
26+
}
27+
}
28+
29+
struct ThrowingTestSequence<Base>: AsyncSequence where Base: Sequence {
30+
typealias Element = Base.Element
31+
32+
var base: Base
33+
34+
struct AsyncIterator: AsyncIteratorProtocol {
35+
var baseIterator: Base.Iterator
36+
37+
mutating func next() async throws -> Base.Iterator.Element? {
38+
baseIterator.next()
39+
}
40+
}
41+
42+
func makeAsyncIterator() -> AsyncIterator {
43+
AsyncIterator(baseIterator: base.makeIterator())
44+
}
45+
}

0 commit comments

Comments
 (0)