049ce7ddc6
PHP 8 Update - nullsafe operator (?->) - Remove (real) cast - Named arguments - Remove (unset) cast - Remove {} access - match expression - Union types in type hints and static typehint - Block catch without variable - Trailing comma in parameter lists - throw can be used as an expression - Concatenation precedence - Declaring properties in the constructor - Attributes - Names in the namespace are treated as a single token - Trailing comma in closure use list - Check that ::class on object works - Deferencable changes and arbitrary expressions in new/instanceof
66 lines
1.2 KiB
Go
66 lines
1.2 KiB
Go
package version_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"gotest.tools/assert"
|
|
|
|
"github.com/z7zmey/php-parser/pkg/version"
|
|
)
|
|
|
|
func Test(t *testing.T) {
|
|
ver, err := version.New("7.4")
|
|
assert.NilError(t, err)
|
|
|
|
assert.Equal(t, *ver, version.Version{
|
|
Major: 7,
|
|
Minor: 4,
|
|
})
|
|
}
|
|
|
|
func TestLeadingZero(t *testing.T) {
|
|
ver, err := version.New("07.04")
|
|
assert.NilError(t, err)
|
|
|
|
assert.Equal(t, *ver, version.Version{
|
|
Major: 7,
|
|
Minor: 4,
|
|
})
|
|
}
|
|
|
|
func TestInRange(t *testing.T) {
|
|
s, err := version.New("7.0")
|
|
assert.NilError(t, err)
|
|
|
|
e, err := version.New("7.4")
|
|
assert.NilError(t, err)
|
|
|
|
ver, err := version.New("7.0")
|
|
assert.NilError(t, err)
|
|
assert.Assert(t, ver.InRange(s, e))
|
|
|
|
ver, err = version.New("7.2")
|
|
assert.NilError(t, err)
|
|
assert.Assert(t, ver.InRange(s, e))
|
|
|
|
ver, err = version.New("7.4")
|
|
assert.NilError(t, err)
|
|
assert.Assert(t, ver.InRange(s, e))
|
|
}
|
|
|
|
func TestInRangePHP8(t *testing.T) {
|
|
s, err := version.New("8.0")
|
|
assert.NilError(t, err)
|
|
|
|
e, err := version.New("8.1")
|
|
assert.NilError(t, err)
|
|
|
|
ver, err := version.New("8.0")
|
|
assert.NilError(t, err)
|
|
assert.Assert(t, ver.InRange(s, e))
|
|
|
|
ver, err = version.New("8.1")
|
|
assert.NilError(t, err)
|
|
assert.Assert(t, ver.InRange(s, e))
|
|
}
|