//
//  Copyright (c) 2015 Mobify Research & Development Inc. All rights reserved.
//

import XCTest
@testable import Astro

class AlertViewPluginTests: AstroTestCase {
    var messageBus: MessageBus!
    var pluginResolver: StubPluginResolver!
    var alertViewPlugin: AlertViewPlugin!

    override func setUp() {
        messageBus = MessageBus()
        pluginResolver = StubPluginResolver()
        alertViewPlugin = AlertViewPlugin(address: "AlertViewPlugin:0", messageBus: messageBus, pluginResolver: pluginResolver, options: nil)
    }

    func testSetTitle() {
        let title = "title"
        alertViewPlugin.setTitle(title) { _ in }

        XCTAssertEqual(alertViewPlugin.title, title)
    }

    func testSetText() {
        let text = "This is the test alert view text for testing."
        alertViewPlugin.setText(text) { _ in }

        XCTAssertEqual(alertViewPlugin.text, text)
    }

    func testAddingButtons() {
        let okButtonLabel = "Ok Button"
        let cancelButtonLabel = "Cancel Button"

        XCTAssertFalse(alertViewPlugin.shouldShowOKButton)
        XCTAssertFalse(alertViewPlugin.shouldShowCancelButton)

        alertViewPlugin.setOKButtonTitleKey(okButtonLabel) { _ in }

        XCTAssertTrue(alertViewPlugin.shouldShowOKButton)
        XCTAssertFalse(alertViewPlugin.shouldShowCancelButton)

        alertViewPlugin.setCancelButtonTitleKey(cancelButtonLabel) { _ in }

        XCTAssertTrue(alertViewPlugin.shouldShowOKButton)
        XCTAssertTrue(alertViewPlugin.shouldShowCancelButton)
    }
}
