mas/MasKitTests/Controllers/MasAppLibrarySpec.swift

57 lines
1.4 KiB
Swift
Raw Normal View History

2020-03-29 03:15:07 +00:00
//
// MasAppLibrarySpec.swift
// MasKitTests
//
// Created by Ben Chatelain on 3/1/20.
// Copyright © 2020 mas-cli. All rights reserved.
//
@testable import MasKit
import Nimble
import Quick
class MasAppLibrarySpec: QuickSpec {
override func spec() {
2020-05-14 04:15:47 +00:00
let library = MasAppLibrary(softwareMap: SoftwareMapMock(products: apps))
2020-03-29 03:15:07 +00:00
describe("mas app library") {
it("contains all installed apps") {
2020-05-14 04:15:47 +00:00
expect(library.installedApps.count) == apps.count
expect(library.installedApps.first!.appName) == myApp.appName
}
it("can locate an app by bundle id") {
let app = library.installedApp(forBundleId: "com.example")!
expect(app.bundleIdentifier) == myApp.bundleIdentifier
2020-03-29 03:15:07 +00:00
}
}
}
}
// MARK: - Test Data
2020-05-14 04:15:47 +00:00
let myApp = SoftwareProductMock(
appName: "MyApp",
bundleIdentifier: "com.example",
bundlePath: "",
bundleVersion: "",
itemIdentifier: 1234)
2020-03-29 03:15:07 +00:00
var apps: [SoftwareProduct] = [
myApp
]
// MARK: - SoftwareMapMock
struct SoftwareMapMock: SoftwareMap {
var products: [SoftwareProduct] = []
func allSoftwareProducts() -> [SoftwareProduct] {
return products
}
func product(for bundleIdentifier: String) -> SoftwareProduct? {
for product in products where product.bundleIdentifier == bundleIdentifier {
return product
2020-03-29 03:15:07 +00:00
}
return nil
}
}