susumu.yata
null+****@clear*****
Thu Oct 2 11:42:15 JST 2014
susumu.yata 2014-10-02 11:42:15 +0900 (Thu, 02 Oct 2014) New Revision: 4b41afcc9d7d008f3c9cd324719d0daf80d30c94 https://github.com/groonga/grnxx/commit/4b41afcc9d7d008f3c9cd324719d0daf80d30c94 Message: Add a test for an invalid expression. (#78) Modified files: test/test_expression.cpp Modified: test/test_expression.cpp (+28 -0) =================================================================== --- test/test_expression.cpp 2014-10-02 11:24:40 +0900 (d6ae63e) +++ test/test_expression.cpp 2014-10-02 11:42:15 +0900 (1fcd287) @@ -3011,6 +3011,31 @@ void test_partial_filter() { } } +void test_error() { + grnxx::Error error; + + // Create an object for building expressions. + auto builder = grnxx::ExpressionBuilder::create(&error, test.table); + assert(builder); + + // Test an invalid expression (Int * Text). + assert(builder->push_column(&error, "Int")); + assert(builder->push_column(&error, "Text")); + assert(!builder->push_operator(&error, grnxx::MULTIPLICATION_OPERATOR)); + + // Additional operations must fail. + assert(!builder->push_constant(&error, grnxx::Text("ABC"))); + assert(!builder->push_column(&error, "Float")); + + // Clear the broken status. + builder->clear(); + + // Test a valid expression (Int + Int). + assert(builder->push_column(&error, "Int")); + assert(builder->push_column(&error, "Int")); + assert(builder->push_operator(&error, grnxx::PLUS_OPERATOR)); +} + int main() { init_test(); @@ -3058,5 +3083,8 @@ int main() { // Test partial filtering. test_partial_filter(); + // Test error. + test_error(); + return 0; } -------------- next part -------------- HTML����������������������������...Download