Skip to content

BUG comparing Strings and Numbers #5

@erdanielli

Description

@erdanielli
import com.github.tanob.groobe.GrooBe

class GrooBeFailingTests extends GroovyTestCase {

    static {
        GrooBe.activate()
    }

    void testShouldBeBetweenStrings() {
        def string1 = "My String A"
        def string1AsGString = "$string1"
        def string1AsMultiline = """$string1"""

        def sameStrings = [string1, string1AsGString, string1AsMultiline]

        // using Groovy simple assertions, they're all equals
        sameStrings.each { left ->
            sameStrings.each { right ->
                assert left == right : "\n\t'$left' [${left.class.simpleName}] should be equals to\n\t'$right' [${right.class.simpleName}]"
            }
        }

        // GrooBe fails because GStrings ARE NOT Strings
        // http://groovy.codehaus.org/Strings+and+GString
        sameStrings.each { left ->
            sameStrings.each { right ->
                left.shouldBe right, "\n\t'$left' [${left.class.simpleName}] should be equals to\n\t'$right' [${right.class.simpleName}]"
            }
        }
    }

    void testShouldBeBetweenNumbers() {
        def zeroes = [
            new Byte("0"),
            new Short("0"),
            new Integer(0),
            new Float("0.0"),
            new Long(0),
            new Double("0.00"),
            new BigDecimal("0.000"),
            new BigInteger("0000000000")
        ]

        // using Groovy simple assertions, they're all equals
        zeroes.each { left ->
            zeroes.each { right ->
                assert left == right : "\n\t'$left' [${left.class.simpleName}] should be equals to\n\t'$right' [${right.class.simpleName}]"
            }
        }

        // GrooBe fails
        zeroes.each { left ->
            zeroes.each { right ->
                left.shouldBe right, "\n\t'$left' [${left.class.simpleName}] should be equals to\n\t'$right' [${right.class.simpleName}]"
            }
        }
    }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions