@@ -52,10 +52,55 @@ class RxQueryKitTests: XCTestCase {
5252
5353 disposable. dispose ( )
5454 }
55+
56+ func testObjects( ) {
57+ var objects : [ [ Person ] ] = [ ]
58+
59+ let disposable = try ! Person . queryset ( context)
60+ . orderBy { $0. name. ascending ( ) }
61+ . objects ( )
62+ . subscribeNext {
63+ objects. append ( $0)
64+ }
65+
66+ // Initial value
67+ XCTAssertEqual ( objects, [ [ ] ] )
68+
69+ // Created
70+ let p1 = Person . create ( context, name: " kyle1 " )
71+ let p2 = Person . create ( context, name: " kyle2 " )
72+ let p3 = Person . create ( context, name: " kyle3 " )
73+ try ! context. save ( )
74+ XCTAssertEqual ( objects, [ [ ] , [ p1, p2, p3] ] )
75+
76+ // Deleted
77+ context. deleteObject ( p1)
78+ context. deleteObject ( p3)
79+ try ! context. save ( )
80+ XCTAssertEqual ( objects, [ [ ] , [ p1, p2, p3] , [ p2] ] )
81+
82+ // Modified Object
83+ context. deleteObject ( p1)
84+ context. deleteObject ( p3)
85+ p2. name = " kyle updated "
86+ try ! context. save ( )
87+ XCTAssertEqual ( objects, [ [ ] , [ p1, p2, p3] , [ p2] , [ p2] ] )
88+
89+ // Doesn't update when nothing changes
90+ Comment . create ( context, text: " Hello World " )
91+ try ! context. save ( )
92+ XCTAssertEqual ( objects, [ [ ] , [ p1, p2, p3] , [ p2] , [ p2] ] )
93+
94+ disposable. dispose ( )
95+ }
5596}
5697
5798
5899@objc ( Person) class Person : NSManagedObject {
100+ class var name : Attribute < String > {
101+ return Attribute ( " name " )
102+ }
103+
59104 class func createEntityDescription( ) -> NSEntityDescription {
60105 let name = NSAttributeDescription ( )
61106 name. name = " name "
0 commit comments