package com.alibaba.druid.sql.parser; import junit.framework.TestCase; import org.junit.Assert; import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlLockTableStatement; import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlLockTableStatement.LockType; import com.alibaba.druid.sql.dialect.mysql.ast.statement.MySqlUnlockTablesStatement; import com.alibaba.druid.sql.dialect.mysql.parser.MySqlStatementParser; public class MySQLLockTableTest extends TestCase { public void testLockTables() { String stmt1 = "lock tables tt_table read"; MySqlStatementParser parser1 = new MySqlStatementParser(stmt1); MySqlLockTableStatement statment1 = (MySqlLockTableStatement) parser1.parseStatement(); Assert.assertTrue("tt_table".equalsIgnoreCase(statment1.getTableSource().toString())); Assert.assertTrue(LockType.READ == statment1.getLockType()); String stmt2 = "lock tables tt_table write"; MySqlStatementParser parser2 = new MySqlStatementParser(stmt2); MySqlLockTableStatement statment2 = (MySqlLockTableStatement) parser2.parseStatement(); Assert.assertTrue("tt_table".equalsIgnoreCase(statment2.getTableSource().toString())); Assert.assertTrue(LockType.WRITE == statment2.getLockType()); String stmt3 = "lock table tt_table read"; MySqlStatementParser parser3 = new MySqlStatementParser(stmt3); MySqlLockTableStatement statment3 = (MySqlLockTableStatement) parser3.parseStatement(); Assert.assertTrue("tt_table".equalsIgnoreCase(statment3.getTableSource().toString())); Assert.assertTrue(LockType.READ == statment3.getLockType()); String stmt4 = "lock table tt_table write"; MySqlStatementParser parser4 = new MySqlStatementParser(stmt4); MySqlLockTableStatement statment4 = (MySqlLockTableStatement) parser4.parseStatement(); Assert.assertTrue("tt_table".equalsIgnoreCase(statment4.getTableSource().toString())); Assert.assertTrue(LockType.WRITE == statment4.getLockType()); } public void testUnlockTables() { String stmt1 = "unlock tables"; String stmt2 = "unlock table"; MySqlStatementParser parser1 = new MySqlStatementParser(stmt1); MySqlStatementParser parser2 = new MySqlStatementParser(stmt2); MySqlUnlockTablesStatement statment1 = (MySqlUnlockTablesStatement)parser1.parseStatement(); MySqlUnlockTablesStatement statment2 = (MySqlUnlockTablesStatement)parser2.parseStatement(); Assert.assertTrue(true); } }