Skip to content
Permalink
Browse files
Convert tests to use the new testing framework
  • Loading branch information
jameskleeh committed Jun 15, 2017
1 parent aed4c14 commit 8c4f077
Show file tree
Hide file tree
Showing 141 changed files with 2,253 additions and 2,197 deletions.
@@ -5,7 +5,6 @@ dependencies {
project(':grails-web'),
project(':grails-test'),
project(':grails-plugin-domain-class')
// project(':grails-plugin-testing')

compile "org.grails.plugins:converters:$legacyConvertersVersion"
}
@@ -1,8 +1,11 @@
configurations.testCompile {
exclude module: "grails-plugin-testing"
}

dependencies {

testCompile project(':grails-test-suite-base'),
project(':grails-plugin-domain-class'),
project(':grails-plugin-testing'),
project(':grails-plugin-datasource'),
project(':grails-plugin-i18n'),
project(':grails-plugin-url-mappings'),
@@ -47,6 +50,9 @@ dependencies {
testRuntime "org.aspectj:aspectjrt:$aspectjVersion",
"org.aspectj:aspectjweaver:$aspectjVersion"

testCompile ('org.grails:grails-gorm-testing-support:1.0.0.BUILD-SNAPSHOT') {
changing = true
}
}

test {
@@ -1,11 +1,10 @@
package grails.gorm.criteri

import grails.persistence.Entity
import grails.test.mixin.TestFor
import grails.testing.gorm.DomainUnitTest
import spock.lang.Specification

@TestFor(Person)
class WithCriteriaReadOnlySpec extends Specification {
class WithCriteriaReadOnlySpec extends Specification implements DomainUnitTest<Person> {

void 'test that the readOnly criteria method is available in a unit test'() {
given:
@@ -10,7 +10,7 @@ class TransactionalIntegrationTestSpec extends Specification {
void "test that @Integration tests are correctly transformed"() {
when:
Class testClass = new GroovyClassLoader().parseClass('''
import grails.test.mixin.integration.Integration
import grails.testing.mixin.integration.Integration
import grails.transaction.*
import spock.lang.*
@@ -1,38 +1,39 @@
package grails.test.mixin.domain

import grails.persistence.Entity
import grails.test.mixin.TestMixin
import org.junit.Test
import grails.testing.gorm.DataTest
import spock.lang.Specification

@TestMixin(DomainClassUnitTestMixin)
class DomainClassUnitTestMixinTests {
class DomainClassUnitTestMixinTests extends Specification implements DataTest {

@Test
void testBackReferenceAssignment() {
mockDomains Writer, Publication

when:
def publication = new Publication(title: 'Some Paper')
def writer = new Writer(name: 'Some Writer')

writer.addToPublications(publication)

assert publication.ghostWriter == null
assert writer.is(publication.writer)
then:
publication.ghostWriter == null
writer.is(publication.writer)
}

@Test
void testWithTransaction() {
mockDomain Writer
def bodyInvoked = false

when:
def w = new Writer(name: "Stephen King")
w.save(flush:true)

Writer.withTransaction {
bodyInvoked = true
}

assert bodyInvoked
then:
bodyInvoked
}
}

@@ -1,11 +1,10 @@
package grails.test.mixin.domain

import grails.persistence.Entity
import grails.test.mixin.TestFor
import grails.testing.gorm.DomainUnitTest
import spock.lang.Specification

@TestFor(Person)
class SaveDomainSpec extends Specification {
class SaveDomainSpec extends Specification implements DomainUnitTest<Person> {

void 'test dateCreated and lastUpdated populated'() {
given:
@@ -1,20 +1,15 @@
package grails.web.databinding

import grails.persistence.Entity
import grails.test.mixin.Mock
import grails.test.mixin.TestMixin
import grails.test.mixin.domain.DomainClassUnitTestMixin
import grails.testing.gorm.DataTest
import grails.validation.Validateable
import org.grails.core.support.MappingContextBuilder
import spock.lang.Issue
import spock.lang.Specification

@TestMixin(DomainClassUnitTestMixin)
@Mock([Writer, Book])
class GrailsWebDataBinderBindingXmlSpec extends Specification {
class GrailsWebDataBinderBindingXmlSpec extends Specification implements DataTest {

void setupSpec() {
new MappingContextBuilder(grailsApplication).build(Writer, Book)
mockDomains(Writer, Book)
}

@Issue('GRAILS-10868')
@@ -1,9 +1,7 @@
package grails.web.databinding

import grails.databinding.SimpleMapDataBindingSource;
import grails.test.mixin.Mock
import grails.web.databinding.GrailsWebDataBinder
import org.grails.core.support.MappingContextBuilder;
import grails.testing.gorm.DataTest
import spock.lang.Specification


@@ -14,13 +12,12 @@ import spock.lang.Specification
* one test causes problems for other tests.
*
*/
@Mock([Author, Team])
class GrailsWebDataBinderConfigurationSpec extends Specification {
class GrailsWebDataBinderConfigurationSpec extends Specification implements DataTest {

GrailsWebDataBinder binder

void setupSpec() {
new MappingContextBuilder(grailsApplication).build(Author, Team)
mockDomains(Author, Team)
}

void setup() {
@@ -21,27 +21,23 @@ import grails.databinding.SimpleMapDataBindingSource
import grails.databinding.errors.BindingError
import grails.databinding.events.DataBindingListenerAdapter
import grails.persistence.Entity
import grails.test.mixin.Mock
import grails.test.mixin.TestMixin
import grails.test.mixin.domain.DomainClassUnitTestMixin
import grails.testing.gorm.DataTest
import grails.validation.DeferredBindingActions
import grails.validation.Validateable
import org.apache.commons.lang.builder.CompareToBuilder
import org.grails.core.support.MappingContextBuilder
import spock.lang.Ignore
import spock.lang.Issue
import spock.lang.Specification
import spock.lang.Unroll

@TestMixin(DomainClassUnitTestMixin)
@Mock([Foo, AssociationBindingAuthor, AssociationBindingPage, AssociationBindingBook, Author, Child, CollectionContainer, DataBindingBook, Fidget, Parent, Publication, Publisher, Team, Widget])
class GrailsWebDataBinderSpec extends Specification {
class GrailsWebDataBinderSpec extends Specification implements DataTest {

private static Locale defaultLocale = Locale.getDefault()

GrailsWebDataBinder binder

void setupSpec() {
new MappingContextBuilder(grailsApplication).build(Foo, AssociationBindingAuthor, AssociationBindingPage, AssociationBindingBook, Author, Child, CollectionContainer, DataBindingBook, Fidget, Parent, Publication, Publisher, Team, Widget)
mockDomains Foo, AssociationBindingAuthor, AssociationBindingPage, AssociationBindingBook, Author, Child, CollectionContainer, DataBindingBook, Fidget, Parent, Publication, Publisher, Team, Widget
}

void setup() {
@@ -1,9 +1,12 @@
configurations.testCompile {
exclude module: "grails-plugin-testing"
}

dependencies {

compile project(':grails-test-suite-base'),
project(':grails-plugin-interceptors'),
project(':grails-plugin-controllers'),
project(':grails-plugin-testing')
project(':grails-plugin-controllers')

compile "org.grails.plugins:gsp:$gspVersion"
compile "org.apache.tomcat:tomcat-jdbc:$tomcatVersion"
@@ -52,6 +55,13 @@ dependencies {
exclude group: 'java-persistence', module:'persistence-api'
exclude group: 'javassist', module: 'javassist'
}

testCompile ('org.grails:grails-web-testing-support:1.0.0.BUILD-SNAPSHOT') {
changing = true
}
testCompile ('org.grails:grails-gorm-testing-support:1.0.0.BUILD-SNAPSHOT') {
changing = true
}
}

test {
@@ -1,19 +1,25 @@
package grails.test.mixin

import grails.persistence.Entity
import grails.testing.gorm.DataTest
import spock.lang.Specification

import org.junit.Test
class AddToAndServiceInjectionTests extends Specification implements DataTest {

@TestFor(Ship)
@Mock([Ship, Pirate])
class AddToAndServiceInjectionTests {
Class[] getDomainClassesToMock() {
[Ship, Pirate]
}

@Test
void testAddTo() {
given:
def pirate = new Pirate(name: 'Billy')
def ship = new Ship()

when:
ship.addToPirates(pirate)
assert 1 == ship.pirates.size()

then:
1 == ship.pirates.size()
}
}

0 comments on commit 8c4f077

Please sign in to comment.