msi: Add more join tests
James Hawkins
truiken at gmail.com
Tue Sep 12 16:00:06 CDT 2006
Hi,
Changelog:
* Add more join tests.
dlls/msi/tests/db.c | 162 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 162 insertions(+), 0 deletions(-)
--
James Hawkins
-------------- next part --------------
diff --git a/dlls/msi/tests/db.c b/dlls/msi/tests/db.c
index f46190a..0c36ec1 100644
--- a/dlls/msi/tests/db.c
+++ b/dlls/msi/tests/db.c
@@ -1733,6 +1733,28 @@ static const struct join_res join_res_fo
{ "msvcp.dll.01234", "single.dll.31415" },
};
+static const struct join_res join_res_fifth[] =
+{
+ { "malar", "procerus" },
+};
+
+static const struct join_res join_res_sixth[] =
+{
+ { "malar", "procerus" },
+ { "malar", "procerus" },
+ { "malar", "nasalis" },
+ { "malar", "nasalis" },
+ { "malar", "nasalis" },
+ { "malar", "mentalis" },
+};
+
+static const struct join_res join_res_seventh[] =
+{
+ { "malar", "nasalis" },
+ { "malar", "nasalis" },
+ { "malar", "nasalis" },
+};
+
static void test_join(void)
{
MSIHANDLE hdb, hview, hrec;
@@ -1962,6 +1984,146 @@ static void test_join(void)
MsiViewClose(hview);
MsiCloseHandle(hview);
+
+ query = "SELECT `Component`.`ComponentId`, `FeatureComponents`.`Feature_` "
+ "FROM `Component`, `FeatureComponents` "
+ "WHERE `Component`.`Component` = 'zygomatic' "
+ "AND `FeatureComponents`.`Component_` = 'maxilla' "
+ "ORDER BY `Feature_`";
+ r = MsiDatabaseOpenView(hdb, query, &hview);
+ todo_wine
+ {
+ ok( r == ERROR_SUCCESS, "failed to open view: %d\n", r );
+ }
+
+ r = MsiViewExecute(hview, 0);
+ todo_wine
+ {
+ ok( r == ERROR_SUCCESS, "failed to execute view: %d\n", r );
+ }
+
+ i = 0;
+ while ((r = MsiViewFetch(hview, &hrec)) == ERROR_SUCCESS)
+ {
+ count = MsiRecordGetFieldCount( hrec );
+ ok( count == 2, "Expected 2 record fields, got %d\n", count );
+
+ size = MAX_PATH;
+ r = MsiRecordGetString( hrec, 1, buf, &size );
+ ok( r == ERROR_SUCCESS, "failed to get record string: %d\n", r );
+ ok( !lstrcmp( buf, join_res_fifth[i].one ),
+ "Expected '%s', got %s\n", join_res_fifth[i].one, buf );
+
+ size = MAX_PATH;
+ r = MsiRecordGetString( hrec, 2, buf, &size );
+ ok( r == ERROR_SUCCESS, "failed to get record string: %d\n", r );
+ ok( !lstrcmp( buf, join_res_fifth[i].two ),
+ "Expected '%s', got %s\n", join_res_fifth[i].two, buf );
+
+ i++;
+ MsiCloseHandle(hrec);
+ }
+
+ todo_wine
+ {
+ ok( r == ERROR_NO_MORE_ITEMS, "expected no more items: %d\n", r );
+ }
+
+ MsiViewClose(hview);
+ MsiCloseHandle(hview);
+
+ query = "SELECT `Component`.`ComponentId`, `FeatureComponents`.`Feature_` "
+ "FROM `Component`, `FeatureComponents` "
+ "WHERE `Component` = 'zygomatic' "
+ "ORDER BY `Feature_`";
+ r = MsiDatabaseOpenView(hdb, query, &hview);
+ todo_wine
+ {
+ ok( r == ERROR_SUCCESS, "failed to open view: %d\n", r );
+ }
+
+ r = MsiViewExecute(hview, 0);
+ todo_wine
+ {
+ ok( r == ERROR_SUCCESS, "failed to execute view: %d\n", r );
+ }
+
+ i = 0;
+ while ((r = MsiViewFetch(hview, &hrec)) == ERROR_SUCCESS)
+ {
+ count = MsiRecordGetFieldCount( hrec );
+ ok( count == 2, "Expected 2 record fields, got %d\n", count );
+
+ size = MAX_PATH;
+ r = MsiRecordGetString( hrec, 1, buf, &size );
+ ok( r == ERROR_SUCCESS, "failed to get record string: %d\n", r );
+ ok( !lstrcmp( buf, join_res_sixth[i].one ),
+ "Expected '%s', got %s\n", join_res_sixth[i].one, buf );
+
+ size = MAX_PATH;
+ r = MsiRecordGetString( hrec, 2, buf, &size );
+ ok( r == ERROR_SUCCESS, "failed to get record string: %d\n", r );
+ ok( !lstrcmp( buf, join_res_sixth[i].two ),
+ "Expected '%s', got %s\n", join_res_sixth[i].two, buf );
+
+ i++;
+ MsiCloseHandle(hrec);
+ }
+
+ todo_wine
+ {
+ ok( r == ERROR_NO_MORE_ITEMS, "expected no more items: %d\n", r );
+ }
+
+ MsiViewClose(hview);
+ MsiCloseHandle(hview);
+
+ query = "SELECT `Component`.`ComponentId`, `FeatureComponents`.`Feature_` "
+ "FROM `Component`, `FeatureComponents` "
+ "WHERE `Component` = 'zygomatic' "
+ "AND `Feature_` = 'nasalis' "
+ "ORDER BY `Feature_`";
+ r = MsiDatabaseOpenView(hdb, query, &hview);
+ todo_wine
+ {
+ ok( r == ERROR_SUCCESS, "failed to open view: %d\n", r );
+ }
+
+ r = MsiViewExecute(hview, 0);
+ todo_wine
+ {
+ ok( r == ERROR_SUCCESS, "failed to execute view: %d\n", r );
+ }
+
+ i = 0;
+ while ((r = MsiViewFetch(hview, &hrec)) == ERROR_SUCCESS)
+ {
+ count = MsiRecordGetFieldCount( hrec );
+ ok( count == 2, "Expected 2 record fields, got %d\n", count );
+
+ size = MAX_PATH;
+ r = MsiRecordGetString( hrec, 1, buf, &size );
+ ok( r == ERROR_SUCCESS, "failed to get record string: %d\n", r );
+ ok( !lstrcmp( buf, join_res_seventh[i].one ),
+ "Expected '%s', got %s\n", join_res_seventh[i].one, buf );
+
+ size = MAX_PATH;
+ r = MsiRecordGetString( hrec, 2, buf, &size );
+ ok( r == ERROR_SUCCESS, "failed to get record string: %d\n", r );
+ ok( !lstrcmp( buf, join_res_seventh[i].two ),
+ "Expected '%s', got %s\n", join_res_seventh[i].two, buf );
+
+ i++;
+ MsiCloseHandle(hrec);
+ }
+
+ todo_wine
+ {
+ ok( r == ERROR_NO_MORE_ITEMS, "expected no more items: %d\n", r );
+ }
+
+ MsiViewClose(hview);
+ MsiCloseHandle(hview);
MsiCloseHandle(hdb);
DeleteFile(msifile);
}
--
1.4.2
More information about the wine-patches
mailing list