OutputStreamTests.swift 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. //
  2. // OutputStreamTests.swift
  3. // LoopKitTests
  4. //
  5. // Created by Darin Krauss on 9/17/20.
  6. // Copyright © 2020 LoopKit Authors. All rights reserved.
  7. //
  8. import XCTest
  9. import Foundation
  10. @testable import LoopKit
  11. class OutputStreamTests: XCTestCase {
  12. private let string = "The quick brown fox jumps over the lazy dog"
  13. func testWriteString() {
  14. let outputStream = MockOutputStream()
  15. XCTAssertNoThrow(try outputStream.write(string))
  16. XCTAssertEqual(outputStream.string, string)
  17. }
  18. func testWriteStringThrowsError() {
  19. let outputStream = MockOutputStream()
  20. outputStream.error = MockError()
  21. XCTAssertThrowsError(try outputStream.write(string)) { error in
  22. XCTAssertEqual(error as! MockError, outputStream.error as! MockError)
  23. }
  24. }
  25. func testWriteData() {
  26. let data = string.data(using: .utf8)!
  27. let outputStream = MockOutputStream()
  28. XCTAssertNoThrow(try outputStream.write(data))
  29. XCTAssertEqual(outputStream.data, data)
  30. }
  31. func testWriteDataThrowsError() {
  32. let data = string.data(using: .utf8)!
  33. let outputStream = MockOutputStream()
  34. outputStream.error = MockError()
  35. XCTAssertThrowsError(try outputStream.write(data)) { error in
  36. XCTAssertEqual(error as! MockError, outputStream.error as! MockError)
  37. }
  38. }
  39. }
  40. fileprivate struct MockError: Error, Equatable {}