MockPumpManager+UI.swift 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. //
  2. // MockPumpManager+UI.swift
  3. // LoopKitUI
  4. //
  5. // Created by Michael Pangburn on 11/20/18.
  6. // Copyright © 2018 LoopKit Authors. All rights reserved.
  7. //
  8. import Foundation
  9. import LoopKit
  10. import LoopKitUI
  11. import MockKit
  12. extension MockPumpManager: PumpManagerUI {
  13. public static func setupViewController() -> (UIViewController & CompletionNotifying & PumpManagerSetupViewController) {
  14. return MockPumpManagerSetupViewController.instantiateFromStoryboard()
  15. }
  16. public func settingsViewController() -> (UIViewController & CompletionNotifying) {
  17. let settings = MockPumpManagerSettingsViewController(pumpManager: self)
  18. let nav = SettingsNavigationViewController(rootViewController: settings)
  19. return nav
  20. }
  21. public var smallImage: UIImage? {
  22. return UIImage(named: "Simulator Small", in: Bundle(for: MockPumpManagerSettingsViewController.self), compatibleWith: nil)
  23. }
  24. public func hudProvider() -> HUDProvider? {
  25. return MockHUDProvider(pumpManager: self)
  26. }
  27. public static func createHUDViews(rawValue: [String : Any]) -> [BaseHUDView] {
  28. return MockHUDProvider.createHUDViews(rawValue: rawValue)
  29. }
  30. }
  31. // MARK: - DeliveryLimitSettingsTableViewControllerSyncSource
  32. extension MockPumpManager {
  33. public func syncDeliveryLimitSettings(for viewController: DeliveryLimitSettingsTableViewController, completion: @escaping (DeliveryLimitSettingsResult) -> Void) {
  34. completion(.success(maximumBasalRatePerHour: viewController.maximumBasalRatePerHour ?? 5.0, maximumBolus: viewController.maximumBolus ?? 25.0))
  35. }
  36. public func syncButtonTitle(for viewController: DeliveryLimitSettingsTableViewController) -> String {
  37. return "Save to simulator"
  38. }
  39. public func syncButtonDetailText(for viewController: DeliveryLimitSettingsTableViewController) -> String? {
  40. return nil
  41. }
  42. public func deliveryLimitSettingsTableViewControllerIsReadOnly(_ viewController: DeliveryLimitSettingsTableViewController) -> Bool {
  43. return false
  44. }
  45. }
  46. // MARK: - BasalScheduleTableViewControllerSyncSource
  47. extension MockPumpManager {
  48. public func syncScheduleValues(for viewController: BasalScheduleTableViewController, completion: @escaping (SyncBasalScheduleResult<Double>) -> Void) {
  49. completion(.success(scheduleItems: viewController.scheduleItems, timeZone: .currentFixed))
  50. }
  51. public func syncButtonTitle(for viewController: BasalScheduleTableViewController) -> String {
  52. return "Save to simulator"
  53. }
  54. public func syncButtonDetailText(for viewController: BasalScheduleTableViewController) -> String? {
  55. return nil
  56. }
  57. public func basalScheduleTableViewControllerIsReadOnly(_ viewController: BasalScheduleTableViewController) -> Bool {
  58. return false
  59. }
  60. }