//
//  StubPluginResolver.swift
//  Astro
//
//  Created by Mike Klemarewski on 2015-06-01.
//  Copyright (c) 2015 Mobify Research & Development Inc. All rights reserved.
//

@testable import Astro

class StubPluginResolver: PluginResolver {
    var plugins = [String: Plugin]()

    func pluginInstanceByAddress<T>(_ address: MessageAddress, respond: RPCMethodCallback) -> T? {
        for (pluginAddress, plugin) in plugins {
            if pluginAddress == address {
                 if let plugin = plugin as? T {
                    return plugin
                }
            }
        }

        respond(.error("Unable to find plugin at address: \(address)"))
        return nil
    }

    func addPlugin(_ plugin: Plugin) {
        plugins[plugin.address] = plugin
    }

    func remove(instance plugin: Plugin) {

    }
}
