/
CaseSensitivityParsingSpec.scala
52 lines (43 loc) · 2.06 KB
/
CaseSensitivityParsingSpec.scala
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package troy
package cql3_3.lexical
import org.scalatest.{ FlatSpec, Matchers }
import troy.cql.ast.dml.Select.{ ColumnName, SelectionClauseItem, SelectClause }
import troy.cql.parser.ParserTestUtils._
// http://docs.datastax.com/en/cql/3.3/cql/cql_reference/ucase-lcase_r.html
class CaseSensitivityParsingSpec extends FlatSpec with Matchers {
// TODO: https://github.com/cassandra-scala/troy/issues/128
"lower case columns in queries" should "be parsed" in {
parseSelect("SELECT foo FROM test;").selection shouldBe SelectClause(Seq(SelectionClauseItem(ColumnName("foo"), None)))
}
"capitalized columns in queries" should "be parsed as lowercase" ignore {
parseSelect("SELECT Foo FROM test;").selection shouldBe SelectClause(Seq(SelectionClauseItem(ColumnName("foo"), None)))
}
"uppercase columns in queries" should "be parsed as lowercase" ignore {
parseSelect("SELECT FOO FROM test;").selection shouldBe SelectClause(Seq(SelectionClauseItem(ColumnName("foo"), None)))
}
"quoted capitalized columns in queries" should "be parsed as capitalized" ignore {
parseSelect("""SELECT "Bar" FROM test;""").selection shouldBe SelectClause(Seq(SelectionClauseItem(ColumnName("Bar"), None)))
}
"quoted uppercase columns in queries" should "be parsed as uppercase" ignore {
parseSelect("""SELECT "BAR" FROM test;""").selection shouldBe SelectClause(Seq(SelectionClauseItem(ColumnName("BAR"), None)))
}
"quoted lowercase columns in queries" should "be parsed as lowercase" ignore {
parseSelect("""SELECT "bar" FROM test;""").selection shouldBe SelectClause(Seq(SelectionClauseItem(ColumnName("bar"), None)))
}
"quoted lowercase columns in schema" should "be parsed as lowercase" ignore {
val columns = parseCreateTable(
"""
| CREATE TABLE test (
| Foo int PRIMARY KEY,
| "Bar" TEXT,
| "baR" UUID,
| "baz" timestamp
| );
""".stripMargin
).columns
columns(0).name shouldBe "foo"
columns(1).name shouldBe "Bar"
columns(2).name shouldBe "baR"
columns(3).name shouldBe "baz"
}
}