Changeset 397 for branches


Ignore:
Timestamp:
02/08/14 09:59:35 (6 years ago)
Author:
jls17
Message:
Location:
branches/work_304/lists
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • branches/work_304/lists/ARSchemaList.cpp

    r396 r397  
    484484        ARSchemaDbValues &dbValues = schemaDbValues[storeToSchemaIndex]; 
    485485 
    486         if (row.valueList[0].dataType == AR_DATA_TYPE_INTEGER) 
    487                 dbValues.schemaId = row.valueList[0].u.ulongVal; 
    488  
    489         if (row.valueList[2].dataType == AR_DATA_TYPE_CHAR) 
    490         { 
    491                 strncpy(dbValues.viewName, row.valueList[2].u.charVal, AR_MAX_NAME_SIZE); 
    492                 dbValues.viewName[AR_MAX_NAME_SIZE] = 0; 
    493         } 
    494  
    495         if (row.valueList[3].dataType == AR_DATA_TYPE_CHAR) 
    496         { 
    497                 strncpy(dbValues.shViewName, row.valueList[3].u.charVal, AR_MAX_NAME_SIZE); 
    498                 dbValues.shViewName[AR_MAX_NAME_SIZE] = 0; 
    499         } 
     486        SchemaDbQueryBuilder::TryReadSchemaId(row, dbValues.schemaId); 
     487        SchemaDbQueryBuilder::TryReadSchemaView(row, dbValues.viewName); 
     488        SchemaDbQueryBuilder::TryReadSchemaShView(row, dbValues.shViewName); 
    500489} 
    501490 
  • branches/work_304/lists/support/SchemaDbQueryBuilder.cpp

    r396 r397  
    7171        strm << " where schemaId > " << lastReceivedSchemaId; 
    7272} 
     73 
     74bool SchemaDbQueryBuilder::TryReadSchemaId(ARValueList &row, unsigned int &schemaId) 
     75{ 
     76        if (row.valueList[0].dataType == AR_DATA_TYPE_INTEGER) 
     77        { 
     78                schemaId = row.valueList[0].u.ulongVal; 
     79                return true; 
     80        } 
     81        return false; 
     82} 
     83 
     84bool SchemaDbQueryBuilder::TryReadSchemaView(ARValueList &row, ARNameType &schemaView) 
     85{ 
     86        if (row.valueList[2].dataType == AR_DATA_TYPE_CHAR) 
     87        { 
     88                strncpy(schemaView, row.valueList[2].u.charVal, AR_MAX_NAME_SIZE); 
     89                schemaView[AR_MAX_NAME_SIZE] = 0; 
     90                return true; 
     91        } 
     92        return false; 
     93} 
     94 
     95bool SchemaDbQueryBuilder::TryReadSchemaShView(ARValueList &row, ARNameType &shSchemaView) 
     96{ 
     97        if (row.valueList[3].dataType == AR_DATA_TYPE_CHAR) 
     98        { 
     99                strncpy(shSchemaView, row.valueList[3].u.charVal, AR_MAX_NAME_SIZE); 
     100                shSchemaView[AR_MAX_NAME_SIZE] = 0; 
     101                return true; 
     102        } 
     103        return false; 
     104} 
  • branches/work_304/lists/support/SchemaDbQueryBuilder.h

    r396 r397  
    2727        void SetLastReceivedSchemaId(int schemaId); 
    2828 
     29        static bool TryReadSchemaId(ARValueList &row, unsigned int &schemaId); 
     30        static bool TryReadSchemaView(ARValueList &row, ARNameType &schemaView); 
     31        static bool TryReadSchemaShView(ARValueList &row, ARNameType &shSchemaView); 
     32 
    2933private: 
    3034        void AppendStatement(std::ostream &strm); 
  • branches/work_304/lists/support/SchemaDbQueryBuilderTest.cpp

    r396 r397  
    33 
    44using namespace testing; 
     5 
     6const int NO_MAX_RESULT_LIMIT = 0; 
    57 
    68#define BASE_STATEMENT "select schemaId, name, viewName, shViewName from arschema" 
     
    1315TEST(SchemaDbQueryBuilder, DefaultQueryIfNoMaxRetrieve) 
    1416{ 
    15         SchemaDbQueryBuilder queryBuilder(0); 
     17        SchemaDbQueryBuilder queryBuilder(NO_MAX_RESULT_LIMIT); 
    1618 
    1719        const char* sql = queryBuilder.GetNextQuery(); 
     
    3335 
    3436        void SetUp() override { 
    35                         queryBuilder = new SchemaDbQueryBuilder(MAX_RESULT); 
     37                queryBuilder = new SchemaDbQueryBuilder(MAX_RESULT); 
     38        } 
     39        void TearDown() override { 
     40                delete queryBuilder; 
    3641        } 
    3742}; 
     
    5358        ASSERT_STREQ(SECOND100_SQL_STATEMENT_WITH_QUERY, sql); 
    5459} 
     60 
     61class SchemaDbQueryResultValidator : public Test 
     62{ 
     63#define STRUCT_ITEM_COUNT 4 
     64#define ROW_VALUE_SCHEMAID 123 
     65#define ROW_VALUE_SCHEMANAME "TestSchema" 
     66#define ROW_VALUE_SCHEMAVIEW ROW_VALUE_SCHEMANAME 
     67#define ROW_VALUE_SCHEMASHVIEW ("SH_" ROW_VALUE_SCHEMANAME) 
     68public: 
     69        SchemaDbQueryBuilder *queryBuilder; 
     70 
     71        ARValueList validRow; 
     72        ARValueStruct values[STRUCT_ITEM_COUNT]; 
     73 
     74        void SetUp() override { 
     75                queryBuilder = new SchemaDbQueryBuilder(NO_MAX_RESULT_LIMIT); 
     76 
     77                values[0].dataType = AR_DATA_TYPE_INTEGER; 
     78                values[0].u.intVal = ROW_VALUE_SCHEMAID; 
     79 
     80                values[1].dataType = AR_DATA_TYPE_CHAR; 
     81                values[1].u.charVal = ROW_VALUE_SCHEMANAME; 
     82 
     83                values[2].dataType = AR_DATA_TYPE_CHAR; 
     84                values[2].u.charVal = ROW_VALUE_SCHEMAVIEW; 
     85 
     86                values[3].dataType = AR_DATA_TYPE_CHAR; 
     87                values[3].u.charVal = ROW_VALUE_SCHEMASHVIEW; 
     88 
     89                validRow.numItems = STRUCT_ITEM_COUNT; 
     90                validRow.valueList = values; 
     91        } 
     92}; 
     93 
     94TEST_F(SchemaDbQueryResultValidator, TryReadingAValidSchemaId) 
     95{ 
     96        unsigned int schemaId = 0;  // just init it to a value, different to the expected result 
     97         
     98        bool isValidRead = queryBuilder->TryReadSchemaId(validRow, schemaId); 
     99         
     100        ASSERT_EQ(ROW_VALUE_SCHEMAID, schemaId); 
     101        ASSERT_TRUE(isValidRead); 
     102} 
     103 
     104TEST_F(SchemaDbQueryResultValidator, TryReadingAValidSchemaView) 
     105{ 
     106        ARNameType schemaView; 
     107        bool isValidRead = queryBuilder->TryReadSchemaView(validRow, schemaView); 
     108 
     109        ASSERT_STREQ(ROW_VALUE_SCHEMAVIEW, schemaView); 
     110        ASSERT_TRUE(isValidRead); 
     111} 
     112 
     113TEST_F(SchemaDbQueryResultValidator, TryReadingAValidSchemaShView) 
     114{ 
     115        ARNameType shViewName; 
     116        bool isValidRead = queryBuilder->TryReadSchemaShView(validRow, shViewName); 
     117         
     118        ASSERT_STREQ(ROW_VALUE_SCHEMASHVIEW, shViewName); 
     119        ASSERT_TRUE(isValidRead); 
     120} 
Note: See TracChangeset for help on using the changeset viewer.