@@ -6,10 +6,8 @@ class CallbacksTests: XCTestCase {
6
6
/// Dummy Model implementation for testing.
7
7
final class DummyModel : Entity {
8
8
var exists : Bool = false
9
- static var entity : String {
10
- return " dummy_models "
11
- }
12
- var wasModified : Bool = false
9
+ var wasModifiedOnCreate : Bool = false
10
+ var wasModifiedOnUpdate : Bool = false
13
11
14
12
static func prepare( _ database: Database ) throws { }
15
13
static func revert( _ database: Database ) throws { }
@@ -29,12 +27,17 @@ class CallbacksTests: XCTestCase {
29
27
}
30
28
31
29
func willCreate( ) {
32
- wasModified = true
30
+ wasModifiedOnCreate = true
31
+ }
32
+
33
+ func willUpdate( ) {
34
+ wasModifiedOnUpdate = true
33
35
}
34
36
}
35
37
36
38
static let allTests = [
37
- ( " testCallbacksCanMutateProperties " , testCallbacksCanMutateProperties)
39
+ ( " testCreateCallbacksCanMutateProperties " , testCreateCallbacksCanMutateProperties) ,
40
+ ( " testUpdateCallbacksCanMutateProperties " , testUpdateCallbacksCanMutateProperties)
38
41
]
39
42
40
43
override func setUp( ) {
@@ -44,15 +47,23 @@ class CallbacksTests: XCTestCase {
44
47
45
48
var database : Database !
46
49
47
- func testCallbacksCanMutateProperties( ) {
48
- do {
49
- var result = DummyModel ( )
50
- XCTAssertFalse ( result. wasModified, " Result should not have been modified yet " )
51
-
52
- try result. save ( )
53
- XCTAssertTrue ( result. wasModified, " Result should have been modified by now " )
54
- } catch {
55
- XCTFail ( " Save should not have failed " )
56
- }
50
+ func testCreateCallbacksCanMutateProperties( ) {
51
+ var result = DummyModel ( )
52
+ XCTAssertFalse ( result. wasModifiedOnCreate, " Result should not have been modified yet " )
53
+
54
+ try ? result. save ( )
55
+ XCTAssertTrue ( result. wasModifiedOnCreate, " Result should have been modified by now " )
56
+ }
57
+
58
+ func testUpdateCallbacksCanMutateProperties( ) {
59
+ var result = DummyModel ( )
60
+ XCTAssertFalse ( result. wasModifiedOnUpdate, " Result should not have been modified yet " )
61
+
62
+ try ? result. save ( )
63
+ XCTAssertFalse ( result. wasModifiedOnUpdate, " Result should not have been modified yet " )
64
+
65
+ // Save the object once more to trigger the update callback
66
+ try ? result. save ( )
67
+ XCTAssertTrue ( result. wasModifiedOnUpdate, " Result should have been modified by now " )
57
68
}
58
69
}
0 commit comments