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