mas/Tests/masTests/Controllers/SoftwareMapAppLibrarySpec.swift

59 lines
1.5 KiB
Swift
Raw Normal View History

2020-03-29 03:15:07 +00:00
//
// SoftwareMapAppLibrarySpec.swift
// masTests
2020-03-29 03:15:07 +00:00
//
// Created by Ben Chatelain on 3/1/20.
// Copyright © 2020 mas-cli. All rights reserved.
//
import Nimble
import Quick
@testable import mas
2021-03-22 05:25:18 +00:00
public class SoftwareMapAppLibrarySpec: QuickSpec {
override public func spec() {
let library = SoftwareMapAppLibrary(softwareMap: MockSoftwareMap(products: apps))
2020-05-14 04:15:47 +00:00
2021-04-23 07:01:18 +00:00
beforeSuite {
MAS.initialize()
2021-04-23 07:01:18 +00:00
}
2020-03-29 03:15:07 +00:00
describe("mas app library") {
it("contains all installed apps") {
expect(library.installedApps).to(haveCount(apps.count))
2020-05-14 04:15:47 +00:00
expect(library.installedApps.first!.appName) == myApp.appName
}
it("can locate an app by bundle id") {
expect(library.installedApp(forBundleID: "com.example")!.bundleIdentifier) == myApp.bundleIdentifier
2020-03-29 03:15:07 +00:00
}
}
}
}
// MARK: - Test Data
let myApp = MockSoftwareProduct(
2020-05-14 04:15:47 +00:00
appName: "MyApp",
bundleIdentifier: "com.example",
2021-05-12 19:11:21 +00:00
bundlePath: "/Applications/MyApp.app",
bundleVersion: "1.0.0",
2021-03-22 05:46:17 +00:00
itemIdentifier: 1234
)
2020-03-29 03:15:07 +00:00
2021-03-22 05:25:18 +00:00
var apps: [SoftwareProduct] = [myApp]
2020-03-29 03:15:07 +00:00
// MARK: - MockSoftwareMap
struct MockSoftwareMap: SoftwareMap {
2020-03-29 03:15:07 +00:00
var products: [SoftwareProduct] = []
func allSoftwareProducts() -> [SoftwareProduct] {
2021-03-22 05:46:17 +00:00
products
2020-03-29 03:15:07 +00:00
}
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
}
}