Emcee
64 строки · 2.1 Кб
1import Deployer
2import DeployerTestHelpers
3import DistDeployer
4import Foundation
5import PathLib
6import SocketModels
7import XCTest
8
9final class RemoteWorkerLaunchdPlistTests: XCTestCase {
10private lazy var deploymentDestination = DeploymentDestinationFixtures().build()
11private lazy var launchdPlist = RemoteWorkerLaunchdPlist(
12deploymentDestination: deploymentDestination,
13emceeVersion: "emceeVersion",
14executableDeployableItem: DeployableItem(
15name: "emcee",
16files: [DeployableFile(source: AbsolutePath("local_file"), destination: RelativePath("remote_filename"))]
17),
18queueAddress: SocketAddress(host: "queue.host", port: 24)
19)
20
21func test() throws {
22let data = try launchdPlist.plistData()
23let decodedPlist = try PropertyListSerialization.propertyList(from: data, options: [], format: nil)
24guard let decodedDict = decodedPlist as? NSDictionary else {
25XCTFail("Unexpected decode result")
26return
27}
28XCTAssertEqual(
29decodedDict["ProgramArguments"] as? Array,
30[
31"/Users/username/path/emceeVersion/emcee/remote_filename",
32"distWork",
33"--emcee-version",
34"emceeVersion",
35"--queue-server",
36"queue.host:24",
37"--worker-id",
38"localhost",
39"--hostname",
40deploymentDestination.host,
41]
42)
43XCTAssertEqual(
44decodedDict["WorkingDirectory"] as? String,
45"/Users/username/path/emceeVersion/emcee"
46)
47XCTAssertEqual(
48decodedDict["Disabled"] as? Bool,
49true
50)
51XCTAssertEqual(
52decodedDict["LimitLoadToSessionType"] as? String,
53"Background"
54)
55XCTAssertEqual(
56decodedDict["RunAtLoad"] as? Bool,
57true
58)
59XCTAssertEqual(
60decodedDict["Label"] as? String,
61"ru.avito.emcee.worker.emceeVersion"
62)
63}
64}
65
66