mirror of
https://github.com/Luzifer/ansible-role-version.git
synced 2024-12-23 19:11:20 +00:00
194 lines
4.6 KiB
Go
194 lines
4.6 KiB
Go
package revision
|
||
|
||
import (
|
||
"bytes"
|
||
"testing"
|
||
|
||
. "gopkg.in/check.v1"
|
||
)
|
||
|
||
func Test(t *testing.T) { TestingT(t) }
|
||
|
||
type ScannerSuite struct{}
|
||
|
||
var _ = Suite(&ScannerSuite{})
|
||
|
||
func (s *ScannerSuite) TestReadColon(c *C) {
|
||
scanner := newScanner(bytes.NewBufferString(":"))
|
||
tok, data, err := scanner.scan()
|
||
|
||
c.Assert(err, Equals, nil)
|
||
c.Assert(data, Equals, ":")
|
||
c.Assert(tok, Equals, colon)
|
||
}
|
||
|
||
func (s *ScannerSuite) TestReadTilde(c *C) {
|
||
scanner := newScanner(bytes.NewBufferString("~"))
|
||
tok, data, err := scanner.scan()
|
||
|
||
c.Assert(err, Equals, nil)
|
||
c.Assert(data, Equals, "~")
|
||
c.Assert(tok, Equals, tilde)
|
||
}
|
||
|
||
func (s *ScannerSuite) TestReadCaret(c *C) {
|
||
scanner := newScanner(bytes.NewBufferString("^"))
|
||
tok, data, err := scanner.scan()
|
||
|
||
c.Assert(err, Equals, nil)
|
||
c.Assert(data, Equals, "^")
|
||
c.Assert(tok, Equals, caret)
|
||
}
|
||
|
||
func (s *ScannerSuite) TestReadDot(c *C) {
|
||
scanner := newScanner(bytes.NewBufferString("."))
|
||
tok, data, err := scanner.scan()
|
||
|
||
c.Assert(err, Equals, nil)
|
||
c.Assert(data, Equals, ".")
|
||
c.Assert(tok, Equals, dot)
|
||
}
|
||
|
||
func (s *ScannerSuite) TestReadSlash(c *C) {
|
||
scanner := newScanner(bytes.NewBufferString("/"))
|
||
tok, data, err := scanner.scan()
|
||
|
||
c.Assert(err, Equals, nil)
|
||
c.Assert(data, Equals, "/")
|
||
c.Assert(tok, Equals, slash)
|
||
}
|
||
|
||
func (s *ScannerSuite) TestReadEOF(c *C) {
|
||
scanner := newScanner(bytes.NewBufferString(string(rune(0))))
|
||
tok, data, err := scanner.scan()
|
||
|
||
c.Assert(err, Equals, nil)
|
||
c.Assert(data, Equals, "")
|
||
c.Assert(tok, Equals, eof)
|
||
}
|
||
|
||
func (s *ScannerSuite) TestReadNumber(c *C) {
|
||
scanner := newScanner(bytes.NewBufferString("1234"))
|
||
tok, data, err := scanner.scan()
|
||
|
||
c.Assert(err, Equals, nil)
|
||
c.Assert(data, Equals, "1234")
|
||
c.Assert(tok, Equals, number)
|
||
}
|
||
|
||
func (s *ScannerSuite) TestReadSpace(c *C) {
|
||
scanner := newScanner(bytes.NewBufferString(" "))
|
||
tok, data, err := scanner.scan()
|
||
|
||
c.Assert(err, Equals, nil)
|
||
c.Assert(data, Equals, " ")
|
||
c.Assert(tok, Equals, space)
|
||
}
|
||
|
||
func (s *ScannerSuite) TestReadControl(c *C) {
|
||
scanner := newScanner(bytes.NewBufferString(""))
|
||
tok, data, err := scanner.scan()
|
||
|
||
c.Assert(err, Equals, nil)
|
||
c.Assert(data, Equals, "\x01")
|
||
c.Assert(tok, Equals, control)
|
||
}
|
||
|
||
func (s *ScannerSuite) TestReadOpenBrace(c *C) {
|
||
scanner := newScanner(bytes.NewBufferString("{"))
|
||
tok, data, err := scanner.scan()
|
||
|
||
c.Assert(err, Equals, nil)
|
||
c.Assert(data, Equals, "{")
|
||
c.Assert(tok, Equals, obrace)
|
||
}
|
||
|
||
func (s *ScannerSuite) TestReadCloseBrace(c *C) {
|
||
scanner := newScanner(bytes.NewBufferString("}"))
|
||
tok, data, err := scanner.scan()
|
||
|
||
c.Assert(err, Equals, nil)
|
||
c.Assert(data, Equals, "}")
|
||
c.Assert(tok, Equals, cbrace)
|
||
}
|
||
|
||
func (s *ScannerSuite) TestReadMinus(c *C) {
|
||
scanner := newScanner(bytes.NewBufferString("-"))
|
||
tok, data, err := scanner.scan()
|
||
|
||
c.Assert(err, Equals, nil)
|
||
c.Assert(data, Equals, "-")
|
||
c.Assert(tok, Equals, minus)
|
||
}
|
||
|
||
func (s *ScannerSuite) TestReadAt(c *C) {
|
||
scanner := newScanner(bytes.NewBufferString("@"))
|
||
tok, data, err := scanner.scan()
|
||
|
||
c.Assert(err, Equals, nil)
|
||
c.Assert(data, Equals, "@")
|
||
c.Assert(tok, Equals, at)
|
||
}
|
||
|
||
func (s *ScannerSuite) TestReadAntislash(c *C) {
|
||
scanner := newScanner(bytes.NewBufferString("\\"))
|
||
tok, data, err := scanner.scan()
|
||
|
||
c.Assert(err, Equals, nil)
|
||
c.Assert(data, Equals, "\\")
|
||
c.Assert(tok, Equals, aslash)
|
||
}
|
||
|
||
func (s *ScannerSuite) TestReadQuestionMark(c *C) {
|
||
scanner := newScanner(bytes.NewBufferString("?"))
|
||
tok, data, err := scanner.scan()
|
||
|
||
c.Assert(err, Equals, nil)
|
||
c.Assert(data, Equals, "?")
|
||
c.Assert(tok, Equals, qmark)
|
||
}
|
||
|
||
func (s *ScannerSuite) TestReadAsterisk(c *C) {
|
||
scanner := newScanner(bytes.NewBufferString("*"))
|
||
tok, data, err := scanner.scan()
|
||
|
||
c.Assert(err, Equals, nil)
|
||
c.Assert(data, Equals, "*")
|
||
c.Assert(tok, Equals, asterisk)
|
||
}
|
||
|
||
func (s *ScannerSuite) TestReadOpenBracket(c *C) {
|
||
scanner := newScanner(bytes.NewBufferString("["))
|
||
tok, data, err := scanner.scan()
|
||
|
||
c.Assert(err, Equals, nil)
|
||
c.Assert(data, Equals, "[")
|
||
c.Assert(tok, Equals, obracket)
|
||
}
|
||
|
||
func (s *ScannerSuite) TestReadExclamationMark(c *C) {
|
||
scanner := newScanner(bytes.NewBufferString("!"))
|
||
tok, data, err := scanner.scan()
|
||
|
||
c.Assert(err, Equals, nil)
|
||
c.Assert(data, Equals, "!")
|
||
c.Assert(tok, Equals, emark)
|
||
}
|
||
|
||
func (s *ScannerSuite) TestReadWord(c *C) {
|
||
scanner := newScanner(bytes.NewBufferString("abcde"))
|
||
tok, data, err := scanner.scan()
|
||
|
||
c.Assert(err, Equals, nil)
|
||
c.Assert(data, Equals, "abcde")
|
||
c.Assert(tok, Equals, word)
|
||
}
|
||
|
||
func (s *ScannerSuite) TestReadTokenError(c *C) {
|
||
scanner := newScanner(bytes.NewBufferString("`"))
|
||
tok, data, err := scanner.scan()
|
||
|
||
c.Assert(err, Equals, nil)
|
||
c.Assert(data, Equals, "`")
|
||
c.Assert(tok, Equals, tokenError)
|
||
}
|