| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- import Foundation
- import Swinject
- import Testing
- @testable import Trio
- @Suite("Plugin Manager Tests") struct PluginManagerTests: Injectable {
- let fileStorage = BaseFileStorage()
- @Injected() var pluginManager: PluginManager!
- let resolver = TrioApp().resolver
- init() {
- injectServices(resolver)
- }
- @Test("Can load CGM managers") func testCGMManagerLoad() {
- // Given
- let cgmLoopManagers = pluginManager.availableCGMManagers
- // Then
- #expect(!cgmLoopManagers.isEmpty, "Should have available CGM managers")
- // When loading valid CGM manager
- if let cgmLoop = cgmLoopManagers.first {
- let cgmLoopManager = pluginManager.getCGMManagerTypeByIdentifier(cgmLoop.identifier)
- #expect(cgmLoopManager != nil, "Should load valid CGM manager")
- }
- // When trying to load CGM manager with pump identifier
- if let cgmLoop = cgmLoopManagers.last {
- let invalidManager = pluginManager.getPumpManagerTypeByIdentifier(cgmLoop.identifier)
- #expect(invalidManager == nil, "Should not load CGM manager with pump identifier")
- }
- }
- @Test("Can load pump managers") func testPumpManagerLoad() {
- // Given
- let pumpLoopManagers = pluginManager.availablePumpManagers
- // Then
- #expect(!pumpLoopManagers.isEmpty, "Should have available pump managers")
- // When loading valid pump manager
- if let pumpLoop = pumpLoopManagers.first {
- let pumpLoopManager = pluginManager.getPumpManagerTypeByIdentifier(pumpLoop.identifier)
- #expect(pumpLoopManager != nil, "Should load valid pump manager")
- }
- // When trying to load pump manager with CGM identifier
- if let pumpLoop = pumpLoopManagers.last {
- let invalidManager = pluginManager.getCGMManagerTypeByIdentifier(pumpLoop.identifier)
- #expect(invalidManager == nil, "Should not load pump manager with CGM identifier")
- }
- }
- @Test("Can load service managers") func testServiceManagerLoad() {
- // Given
- let serviceManagers = pluginManager.availableServices
- // Then
- #expect(!serviceManagers.isEmpty, "Should have available services")
- // When
- if let serviceLoop = serviceManagers.first {
- let serviceManager = pluginManager.getServiceTypeByIdentifier(serviceLoop.identifier)
- #expect(serviceManager != nil, "Should load valid service manager")
- }
- }
- @Test("Available managers have valid descriptors") func testManagerDescriptors() {
- // Given/When
- let pumpManagers = pluginManager.availablePumpManagers
- let cgmManagers = pluginManager.availableCGMManagers
- let serviceManagers = pluginManager.availableServices
- // Then
- for manager in pumpManagers {
- #expect(!manager.identifier.isEmpty, "Pump manager should have non-empty identifier")
- #expect(!manager.localizedTitle.isEmpty, "Pump manager should have non-empty title")
- }
- for manager in cgmManagers {
- #expect(!manager.identifier.isEmpty, "CGM manager should have non-empty identifier")
- #expect(!manager.localizedTitle.isEmpty, "CGM manager should have non-empty title")
- }
- for manager in serviceManagers {
- #expect(!manager.identifier.isEmpty, "Service should have non-empty identifier")
- #expect(!manager.localizedTitle.isEmpty, "Service should have non-empty title")
- }
- }
- }
|