OLD | NEW |
(Empty) | |
| 1 #include <gtest/gtest.h> |
| 2 #include "../database.h" |
| 3 |
| 4 /* |
| 5 * Note: These tests need to be run in the same directory as the MSI file. |
| 6 * There's a batch file for that purpose "run-tests.cmd". |
| 7 */ |
| 8 |
| 9 TEST( Database, open ) |
| 10 { |
| 11 File_System_Database db( L"test-installer-lib.msi" ) ; |
| 12 } |
| 13 |
| 14 class Database_F |
| 15 : public ::testing::Test |
| 16 { |
| 17 protected: |
| 18 File_System_Database db ; |
| 19 |
| 20 Database_F() |
| 21 : db( L"test-installer-lib.msi" ) |
| 22 {} |
| 23 } ; |
| 24 |
| 25 TEST_F( Database_F, view_n_columns_and_n_rows ) |
| 26 { |
| 27 View v( db, L"SELECT * FROM AbpUIText" ) ; |
| 28 Record r( v.first() ) ; |
| 29 unsigned int j ; |
| 30 for ( j = 0 ; r != v.end() ; ++ j ) |
| 31 { |
| 32 ASSERT_EQ( 3, r.n_fields() ) ; |
| 33 r = v.next() ; |
| 34 } |
| 35 ASSERT_EQ( 4, j ) ; |
| 36 } |
| 37 |
| 38 TEST_F( Database_F, view_single_record ) |
| 39 { |
| 40 View v( db, L"SELECT `content` FROM `AbpUIText` WHERE `component`='close_ie' a
nd `id`='dialog_unknown'" ) ; |
| 41 Record r( v.first() ) ; |
| 42 ASSERT_EQ( 1, r.n_fields() ) ; |
| 43 std::wstring s( r.value_string( 1 ) ) ; |
| 44 std::wstring expected( L"IE is still running" ) ; |
| 45 ASSERT_GT( s.length(), expected.length() ) ; |
| 46 std::wstring prefix( s.substr( 0, expected.length() ) ) ; |
| 47 ASSERT_EQ( prefix, expected ) ; |
| 48 r = v.next() ; |
| 49 ASSERT_EQ( v.end(), r ) ; |
| 50 } |
| 51 |
| 52 TEST_F( Database_F, view_single_record_parametric ) |
| 53 { |
| 54 View v( db, L"SELECT `content` FROM `AbpUIText` WHERE `component`='close_ie' a
nd `id`=?" ) ; |
| 55 Record arg( 1 ) ; |
| 56 arg.assign_string( 1, L"dialog_unknown" ) ; |
| 57 Record r( v.first( arg ) ) ; |
| 58 ASSERT_EQ( 1, r.n_fields() ) ; |
| 59 std::wstring s( r.value_string( 1 ) ) ; |
| 60 std::wstring expected( L"IE is still running" ) ; |
| 61 ASSERT_GT( s.length(), expected.length() ) ; |
| 62 std::wstring prefix( s.substr( 0, expected.length() ) ) ; |
| 63 ASSERT_EQ( prefix, expected ) ; |
| 64 r = v.next() ; |
| 65 ASSERT_EQ( v.end(), r ) ; |
| 66 } |
OLD | NEW |