Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
getRemainingLength example
$this
->
assignPosition
(
$reader
, 2
)
;
$this
->
assertFalse
(
$reader
->
isEOF
(
)
)
;
$this
->
assignPosition
(
$reader
, 5
)
;
$this
->
assertTrue
(
$reader
->
isEOF
(
)
)
;
}
public
function
testGetRemainingLength
(
)
{
$reader
=
new
Reader
(
'hello'
)
;
$this
->
assertEquals
(
5,
$reader
->
getRemainingLength
(
)
)
;
$this
->
assignPosition
(
$reader
, 2
)
;
$this
->
assertEquals
(
3,
$reader
->
getRemainingLength
(
)
)
;
$this
->
assignPosition
(
$reader
, 5
)
;
$this
->
assertEquals
(
0,
$reader
->
getRemainingLength
(
)
)
;
}
public
function
testGetSubstring
(
)
{
$reader
=
new
Reader
(
'hello'
)
;
return
false;
}
$reader
->
moveForward
(
1
)
;
$match
=
$reader
->
findPattern
(
$this
->patterns->
getQuotedStringPattern
(
$quote
)
)
;
if
(
!
$match
)
{
throw
new
InternalErrorException
(
sprintf
(
'Should have found at least an empty match at %d.',
$reader
->
getPosition
(
)
)
)
;
}
// check unclosed strings
if
(
\
strlen
(
$match
[
0
]
)
===
$reader
->
getRemainingLength
(
)
)
{
throw
SyntaxErrorException::
unclosedString
(
$reader
->
getPosition
(
)
- 1
)
;
}
// check quotes pairs validity
if
(
$quote
!==
$reader
->
getSubstring
(
1, \
strlen
(
$match
[
0
]
)
)
)
{
throw
SyntaxErrorException::
unclosedString
(
$reader
->
getPosition
(
)
- 1
)
;
}
$string
=
$this
->escaping->
escapeUnicodeAndNewLine
(
$match
[
0
]
)
;
$stream
->
push
(
new
Token
(
Token::TYPE_STRING,
$string
,
$reader
->
getPosition
(
)
)
)
;
$reader
->
moveForward
(
\
strlen
(
$match
[
0
]
)
+ 1
)
;
protected
function
assertStreamEmpty
(
TokenStream
$stream
)
{
$property
=
new
\
ReflectionProperty
(
$stream
, 'tokens'
)
;
$this
->
assertEquals
(
[
]
,
$property
->
getValue
(
$stream
)
)
;
}
protected
function
assertRemainingContent
(
Reader
$reader
,
$remainingContent
)
{
if
(
'' ===
$remainingContent
)
{
$this
->
assertEquals
(
0,
$reader
->
getRemainingLength
(
)
)
;
$this
->
assertTrue
(
$reader
->
isEOF
(
)
)
;
}
else
{
$this
->
assertEquals
(
\
strlen
(
$remainingContent
)
,
$reader
->
getRemainingLength
(
)
)
;
$this
->
assertEquals
(
0,
$reader
->
getOffset
(
$remainingContent
)
)
;
}
}
}