@@ -126,6 +126,56 @@ class StorageCoreCrudTests: XCTestCase {
126126 } )
127127 }
128128
129+ func testDelete( ) throws {
130+ let storageCore = try StorageCoreImpl ( filename: " " ,
131+ tables: Table < User > ( name: " users " ,
132+ columns:
133+ Column ( name: " id " , keyPath: \User . id, constraints: primaryKey ( ) , notNull ( ) ) ,
134+ Column ( name: " name " , keyPath: \User . name, constraints: notNull ( ) ) ) )
135+ switch storageCore. syncSchema ( preserve: true ) {
136+ case . success( _) :
137+ break
138+ case . failure( let error) :
139+ throw error
140+ }
141+
142+ let bebeRexha = User ( id: 1 , name: " Bebe Rexha " )
143+ let arianaGrande = User ( id: 2 , name: " Ariana Grande " )
144+ switch storageCore. replace ( bebeRexha) {
145+ case . success ( ) :
146+ break
147+ case . failure ( let error) :
148+ throw error
149+ }
150+ switch storageCore. replace ( arianaGrande) {
151+ case . success ( ) :
152+ break
153+ case . failure ( let error) :
154+ throw error
155+ }
156+ var getAllResult: Result< [ User] , Error> = storageCore. getAll ( [ ] )
157+ switch getAllResult {
158+ case . success( let allUsers) :
159+ XCTAssert ( compareUnordered ( allUsers, [ bebeRexha, arianaGrande] ) )
160+ case . failure( let error) :
161+ throw error
162+ }
163+
164+ switch storageCore. delete ( bebeRexha) {
165+ case . success ( ) :
166+ break
167+ case . failure ( let error) :
168+ throw error
169+ }
170+ getAllResult = storageCore. getAll ( [ ] )
171+ switch getAllResult {
172+ case . success( let allUsers) :
173+ XCTAssert ( allUsers == [ arianaGrande] )
174+ case . failure( let error) :
175+ throw error
176+ }
177+ }
178+
129179 func testReplace( ) throws {
130180 let storageCore = try StorageCoreImpl ( filename: " " ,
131181 tables: Table < User > ( name: " users " ,
0 commit comments