Skip to content

Commit

Permalink
Add test for removeFrom with the in memory impl
Browse files Browse the repository at this point in the history
  • Loading branch information
jameskleeh authored and puneetbehl committed Mar 5, 2024
1 parent a6f29a6 commit 0c63b3c
Showing 1 changed file with 59 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
package grails.gorm.tests

import grails.gorm.annotation.Entity
import spock.lang.Issue

class RemoveFromSpec extends GormDatastoreSpec {

@Issue("https://github.com/grails/grails-data-mapping/issues/998")
void "test removeFrom clears the back reference"() {
given:
new AuthorTest(name: "Joe").addToBooks(title: "Ready Player One").addToBooks(title: "Total Recall").save(flush: true, failOnError: true)
new BookTest(title: "Unrelated").save(flush: true, failOnError: true)
session.flush()
session.clear()
AuthorTest author = AuthorTest.first()
BookTest book = author.books.find { it.title == "Total Recall" }

expect:
author.books.size() == 2

when:
author.removeFromBooks(book)
author.save()
book.save()
session.flush()
session.clear()
author = AuthorTest.first()

then:
author.books.size() == 1
BookTest.count == 2
}

List getDomainClasses() {
[AuthorTest, BookTest]
}

}

@Entity
class AuthorTest {
String name

static hasMany = [books: BookTest]

static constraints = {
}
}

@Entity
class BookTest {
String title

static belongsTo = [author: AuthorTest]

static constraints = {
author nullable: true
}
}

0 comments on commit 0c63b3c

Please sign in to comment.