mirror of
https://github.com/mas-cli/mas
synced 2025-02-16 12:38:30 +00:00
Move MasKitTests module to masTests. Rename MasKit enum as Mas. Upgrade swift-tools-version from 5.3 to 5.6.1. swift-tools-version 5.5+ is necessary to allow test code to import executable target code, to allow MasKit library code to be moved into the mas executable. Upgrade to swift-tools-version to 5.6.1 instead of to 5.5 because they support all the same macOS versions. Standardize comments. Signed-off-by: Ross Goldberg <484615+rgoldberg@users.noreply.github.com>
36 lines
948 B
Swift
36 lines
948 B
Swift
//
|
|
// AppLibraryMock.swift
|
|
// masTests
|
|
//
|
|
// Created by Ben Chatelain on 12/27/18.
|
|
// Copyright © 2018 mas-cli. All rights reserved.
|
|
//
|
|
|
|
@testable import mas
|
|
|
|
class AppLibraryMock: AppLibrary {
|
|
var installedApps = [SoftwareProduct]()
|
|
|
|
func uninstallApp(app: SoftwareProduct) throws {
|
|
if !installedApps.contains(where: { product -> Bool in
|
|
app.itemIdentifier == product.itemIdentifier
|
|
}) {
|
|
throw MASError.notInstalled
|
|
}
|
|
|
|
// Special case for testing where we pretend the trash command failed
|
|
if app.bundlePath == "/dev/null" {
|
|
throw MASError.uninstallFailed
|
|
}
|
|
|
|
// Success is the default, watch out for false positives!
|
|
}
|
|
}
|
|
|
|
/// Members not part of the AppLibrary protocol that are only for test state management.
|
|
extension AppLibraryMock {
|
|
/// Clears out the list of installed apps.
|
|
func reset() {
|
|
installedApps = []
|
|
}
|
|
}
|