Skip to content

Commit 092fed0

Browse files
committed
[JAMFKit] Implement Building model
Moved to Swift version 4.
1 parent 5d4c4b9 commit 092fed0

File tree

6 files changed

+89
-4
lines changed

6 files changed

+89
-4
lines changed

.swift-version

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.2
1+
4.0

JAMFKit/JAMFKit.xcodeproj/project.pbxproj

+15-3
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,10 @@
4949
ED7383A41FAB7D5A006259FC /* UserTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED7383A21FAB7D5A006259FC /* UserTests.swift */; };
5050
EDCE84B01FC3152E0066AA75 /* HardwarePurchasing.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDCE84AF1FC3152E0066AA75 /* HardwarePurchasing.swift */; };
5151
EDCE84B11FC3152E0066AA75 /* HardwarePurchasing.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDCE84AF1FC3152E0066AA75 /* HardwarePurchasing.swift */; };
52+
EDFE806E1FEA76EA00169C39 /* Building.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDFE806D1FEA76EA00169C39 /* Building.swift */; };
53+
EDFE806F1FEA76EA00169C39 /* Building.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDFE806D1FEA76EA00169C39 /* Building.swift */; };
54+
EDFE80711FEA773600169C39 /* BuildingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDFE80701FEA773600169C39 /* BuildingTests.swift */; };
55+
EDFE80721FEA773600169C39 /* BuildingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDFE80701FEA773600169C39 /* BuildingTests.swift */; };
5256
/* End PBXBuildFile section */
5357

5458
/* Begin PBXContainerItemProxy section */
@@ -95,6 +99,8 @@
9599
ED7383A01FAB75CE006259FC /* User.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = User.swift; sourceTree = "<group>"; };
96100
ED7383A21FAB7D5A006259FC /* UserTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserTests.swift; sourceTree = "<group>"; };
97101
EDCE84AF1FC3152E0066AA75 /* HardwarePurchasing.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HardwarePurchasing.swift; sourceTree = "<group>"; };
102+
EDFE806D1FEA76EA00169C39 /* Building.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Building.swift; sourceTree = "<group>"; };
103+
EDFE80701FEA773600169C39 /* BuildingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BuildingTests.swift; sourceTree = "<group>"; };
98104
/* End PBXFileReference section */
99105

100106
/* Begin PBXFrameworksBuildPhase section */
@@ -211,8 +217,9 @@
211217
isa = PBXGroup;
212218
children = (
213219
ED1D930C1FA20FB0005589F5 /* BaseObject.swift */,
214-
ED071F601FB34222003FAB0E /* PreciseDate.swift */,
220+
EDFE806D1FEA76EA00169C39 /* Building.swift */,
215221
ED56BB7A1FB1B14400416C1A /* Hardware */,
222+
ED071F601FB34222003FAB0E /* PreciseDate.swift */,
216223
ED73839A1FAB5AD9006259FC /* Site.swift */,
217224
ED7383A01FAB75CE006259FC /* User.swift */,
218225
);
@@ -235,6 +242,7 @@
235242
ED5B01461FB357F8005F0C47 /* PreciseDateTests.swift */,
236243
ED73839D1FAB5B09006259FC /* SiteTests.swift */,
237244
ED7383A21FAB7D5A006259FC /* UserTests.swift */,
245+
EDFE80701FEA773600169C39 /* BuildingTests.swift */,
238246
);
239247
path = Models;
240248
sourceTree = "<group>";
@@ -481,6 +489,7 @@
481489
ED071F5B1FB33D11003FAB0E /* HardwareRemoteManagement.swift in Sources */,
482490
ED7383A11FAB75CE006259FC /* User.swift in Sources */,
483491
ED1D930B1FA20FAB005589F5 /* Identifiable.swift in Sources */,
492+
EDFE806E1FEA76EA00169C39 /* Building.swift in Sources */,
484493
ED56BB7C1FB1B15700416C1A /* Hardware.swift in Sources */,
485494
ED73839B1FAB5AD9006259FC /* Site.swift in Sources */,
486495
ED56BB7F1FB1B24B00416C1A /* HardwareLocation.swift in Sources */,
@@ -504,6 +513,7 @@
504513
ED071F581FB333AF003FAB0E /* HardwareLocationTests.swift in Sources */,
505514
ED1D93111FA20FB9005589F5 /* BaseObjectTests.swift in Sources */,
506515
ED3597831FAA11B6006E3B66 /* JSONHelper.swift in Sources */,
516+
EDFE80711FEA773600169C39 /* BuildingTests.swift in Sources */,
507517
);
508518
runOnlyForDeploymentPostprocessing = 0;
509519
};
@@ -514,6 +524,7 @@
514524
ED071F5C1FB33D11003FAB0E /* HardwareRemoteManagement.swift in Sources */,
515525
ED6C4AE31FAC61DF007B7026 /* User.swift in Sources */,
516526
ED1D930F1FA20FB6005589F5 /* BaseObject.swift in Sources */,
527+
EDFE806F1FEA76EA00169C39 /* Building.swift in Sources */,
517528
ED56BB7D1FB1B15700416C1A /* Hardware.swift in Sources */,
518529
ED73839C1FAB5AD9006259FC /* Site.swift in Sources */,
519530
ED56BB801FB1B24B00416C1A /* HardwareLocation.swift in Sources */,
@@ -537,6 +548,7 @@
537548
ED071F591FB333AF003FAB0E /* HardwareLocationTests.swift in Sources */,
538549
ED1D93101FA20FB9005589F5 /* BaseObjectTests.swift in Sources */,
539550
ED3597841FAA11B6006E3B66 /* JSONHelper.swift in Sources */,
551+
EDFE80721FEA773600169C39 /* BuildingTests.swift in Sources */,
540552
);
541553
runOnlyForDeploymentPostprocessing = 0;
542554
};
@@ -607,7 +619,7 @@
607619
ONLY_ACTIVE_ARCH = YES;
608620
SDKROOT = iphoneos;
609621
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
610-
SWIFT_VERSION = 3.0;
622+
SWIFT_VERSION = 4.0;
611623
TARGETED_DEVICE_FAMILY = "1,2";
612624
VERSIONING_SYSTEM = "apple-generic";
613625
VERSION_INFO_PREFIX = "";
@@ -657,7 +669,7 @@
657669
MACOSX_DEPLOYMENT_TARGET = 10.10;
658670
MTL_ENABLE_DEBUG_INFO = NO;
659671
SDKROOT = iphoneos;
660-
SWIFT_VERSION = 3.0;
672+
SWIFT_VERSION = 4.0;
661673
TARGETED_DEVICE_FAMILY = "1,2";
662674
VALIDATE_PRODUCT = YES;
663675
VERSIONING_SYSTEM = "apple-generic";

JAMFKit/Sources/Models/Building.swift

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
//
2+
// Building.swift
3+
// JAMFKit
4+
//
5+
// Created by Damien Rivet on 20.12.17.
6+
// Copyright © 2017 JAMFKit. All rights reserved.
7+
//
8+
9+
public final class Building: BaseObject {
10+
11+
// MARK: - Properties
12+
13+
public override var description: String {
14+
return "[\(String(describing: Building.self))][\(identifier). \(self.name)]"
15+
}
16+
}
+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
//
2+
// BuildingTests.swift
3+
// JAMFKit
4+
//
5+
// Created by Damien Rivet on 20.12.17.
6+
// Copyright © 2017 JAMFKit. All rights reserved.
7+
//
8+
9+
import XCTest
10+
11+
@testable import JAMFKit
12+
13+
class BuildingTests: XCTestCase {
14+
15+
// MARK: - Constants
16+
17+
let defaultIdentifier: UInt = 12345
18+
let defaultName = "Building"
19+
20+
// MARK: - Tests
21+
22+
func testShouldInitializeFromJSON() {
23+
let payload = self.payload(for: "building_valid")!
24+
25+
let actualValue = Building(json: payload)
26+
27+
XCTAssertNotNil(actualValue)
28+
XCTAssertEqual(actualValue?.identifier, defaultIdentifier)
29+
XCTAssertEqual(actualValue?.name, defaultName)
30+
XCTAssertEqual(actualValue?.description, "[Building][\(defaultIdentifier). \(defaultName)]")
31+
}
32+
33+
func testShouldNotInitializeFromInvalidJSON() {
34+
let payload = self.payload(for: "building_invalid")!
35+
36+
let actualValue = Building(json: payload)
37+
38+
XCTAssertNil(actualValue)
39+
}
40+
41+
func testShouldEncodeToJSON() {
42+
let payload = self.payload(for: "building_valid")!
43+
44+
let actualValue = Building(json: payload)
45+
let encodedObject = actualValue?.toJSON()
46+
47+
XCTAssertNotNil(encodedObject)
48+
XCTAssertEqual(encodedObject?.count, 2)
49+
}
50+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"id": 12345
3+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"id": 12345,
3+
"name": "Building"
4+
}

0 commit comments

Comments
 (0)