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 |