Module: wine Branch: master Commit: f84c1463c1325528f6c664f3b369de3861a03cc2 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=f84c1463c1325528f6c664f3...
Author: Benjamin Arai me@benjaminarai.com Date: Tue Sep 19 19:22:22 2006 -0700
msi: Adds test to check if "AND" operator returns the correct result for the "WHERE" clause.
---
dlls/msi/tests/db.c | 39 ++++++++++++++++++++++++++++++++++++++- 1 files changed, 38 insertions(+), 1 deletions(-)
diff --git a/dlls/msi/tests/db.c b/dlls/msi/tests/db.c index 4ea7c35..400e920 100644 --- a/dlls/msi/tests/db.c +++ b/dlls/msi/tests/db.c @@ -1262,9 +1262,12 @@ static void test_streamtable(void)
static void test_where(void) { - MSIHANDLE hdb = 0, rec; + MSIHANDLE hdb = 0, rec, view; LPCSTR query; UINT r; + DWORD size; + CHAR buf[MAX_PATH]; + UINT count;
hdb = create_db(); ok( hdb, "failed to create db\n"); @@ -1311,6 +1314,40 @@ static void test_where(void) r = MsiRecordGetInteger(rec, 2); ok( 1 == r, "field wrong\n");
+ query = "SELECT `DiskId` FROM `Media` WHERE `LastSequence` >= 1 AND DiskId >= 0"; + r = MsiDatabaseOpenView(hdb, query, &view); + ok( r == ERROR_SUCCESS, "failed to open view: %d\n", r ); + + r = MsiViewExecute(view, 0); + ok( r == ERROR_SUCCESS, "failed to execute view: %d\n", r ); + + r = MsiViewFetch(view, &rec); + ok( r == ERROR_SUCCESS, "failed to fetch view: %d\n", r ); + + count = MsiRecordGetFieldCount( rec ); + ok( count == 1, "Expected 1 record fields, got %d\n", count ); + + size = MAX_PATH; + r = MsiRecordGetString( rec, 1, buf, &size ); + ok( r == ERROR_SUCCESS, "failed to get record string: %d\n", r ); + ok( !lstrcmp( buf, "2" ), + "For (row %d, column 1) expected '%d', got %s\n", 0, 2, buf ); + + r = MsiViewFetch(view, &rec); + ok( r == ERROR_SUCCESS, "failed to fetch view: %d\n", r ); + + size = MAX_PATH; + r = MsiRecordGetString( rec, 1, buf, &size ); + ok( r == ERROR_SUCCESS, "failed to get record string: %d\n", r ); + ok( !lstrcmp( buf, "3" ), + "For (row %d, column 1) expected '%d', got %s\n", 1, 3, buf ); + + r = MsiViewFetch(view, &rec); + ok( r == ERROR_NO_MORE_ITEMS, "expected no more items: %d\n", r ); + + MsiViewClose(view); + MsiCloseHandle(view); + MsiCloseHandle( rec );
MsiCloseHandle( hdb );