Data Type in Groovy: align with `Spock` testing framework

This commit is contained in:
Alex Golub 2023-01-18 22:04:08 +02:00
parent d2eb17077f
commit c333a3f359
2 changed files with 72 additions and 55 deletions

View File

@ -1,14 +1,19 @@
package com.baeldung.determinedatatype
class Person {
private int ageAsInt
private Double ageAsDouble
private String ageAsString
int ageAsInt
Double ageAsDouble
String ageAsString
Person() {}
Person(int ageAsInt) { this.ageAsInt = ageAsInt}
Person(Double ageAsDouble) { this.ageAsDouble = ageAsDouble}
Person(String ageAsString) { this.ageAsString = ageAsString}
Person(int ageAsInt) { this.ageAsInt = ageAsInt }
Person(Double ageAsDouble) { this.ageAsDouble = ageAsDouble }
Person(String ageAsString) { this.ageAsString = ageAsString }
}
class Student extends Person {
}
class Student extends Person {}

View File

@ -1,56 +1,68 @@
package com.baeldung.determinedatatype
import org.junit.Assert
import org.junit.Test
import com.baeldung.determinedatatype.Person
import spock.lang.Specification
public class PersonTest {
@Test
public void givenWhenParameterTypeIsInteger_thenReturnTrue() {
class PersonTest extends Specification {
def "givenWhenParameterTypeIsIntegerThenReturnTrue"() {
given:
Person personObj = new Person(10)
Assert.assertTrue(personObj.ageAsInt instanceof Integer)
}
@Test
public void givenWhenParameterTypeIsDouble_thenReturnTrue() {
Person personObj = new Person(10.0)
Assert.assertTrue((personObj.ageAsDouble).getClass() == Double)
}
@Test
public void givenWhenParameterTypeIsString_thenReturnTrue() {
Person personObj = new Person("10 years")
Assert.assertTrue(personObj.ageAsString.class == String)
}
@Test
public void givenClassName_WhenParameterIsInteger_thenReturnTrue() {
Assert.assertTrue(Person.class.getDeclaredField('ageAsInt').type == int.class)
}
@Test
public void givenWhenObjectIsInstanceOfType_thenReturnTrue() {
Person personObj = new Person()
Assert.assertTrue(personObj instanceof Person)
expect:
personObj.ageAsInt.class == Integer
}
@Test
public void givenWhenInstanceIsOfSubtype_thenReturnTrue() {
def "givenWhenParameterTypeIsDouble_thenReturnTrue"() {
given:
Person personObj = new Person(10.0)
expect:
personObj.ageAsDouble.class == Double
}
def "givenWhenParameterTypeIsString_thenReturnTrue"() {
given:
Person personObj = new Person("10 years")
expect:
personObj.ageAsString.class == String
}
def "givenClassName_WhenParameterIsInteger_thenReturnTrue"() {
expect:
Person.class.getDeclaredField('ageAsInt').type == int.class
}
def "givenWhenObjectIsInstanceOfType_thenReturnTrue"() {
given:
Person personObj = new Person()
expect:
personObj.class == Person
}
def "givenWhenInstanceIsOfSubtype_thenReturnTrue"() {
given:
Student studentObj = new Student()
Assert.assertTrue(studentObj in Person)
expect:
studentObj.class.superclass == Person
}
@Test
public void givenGroovyList_WhenFindClassName_thenReturnTrue() {
def ageList = ['ageAsString','ageAsDouble', 10]
Assert.assertTrue(ageList.class == ArrayList)
Assert.assertTrue(ageList.getClass() == ArrayList)
def "givenGroovyList_WhenFindClassName_thenReturnTrue"() {
given:
def ageList = ['ageAsString', 'ageAsDouble', 10]
expect:
ageList.class == ArrayList
ageList.getClass() == ArrayList
}
@Test
public void givenGrooyMap_WhenFindClassName_thenReturnTrue() {
def ageMap = [ageAsString: '10 years', ageAsDouble: 10.0]
Assert.assertFalse(ageMap.class == LinkedHashMap)
def "givenGroovyMap_WhenFindClassName_thenReturnTrue"() {
given:
def ageMap = [ageAsString: '10 years', ageAsDouble: 10.0]
expect:
ageMap.getClass() == LinkedHashMap
}
}
}