public void Create_Database() { HashSet<String> tableNameHashSet = new HashSet<String> (); tableNameHashSet.Add (WeatherContractOpen.LocationEntryOpen.TABLE_NAME); tableNameHashSet.Add (WeatherContractOpen.WeatherEntryOpen.TABLE_NAME); context.DeleteDatabase (WeatherDbOpenHelper.DATABASE_NAME); SQLiteDatabase db = new WeatherDbOpenHelper ( this.context).WritableDatabase; Assert.AreEqual (true, db.IsOpen); // have we created the tables we want? c = db.RawQuery ("SELECT name FROM sqlite_master WHERE type='table'", null); Assert.IsTrue (c.MoveToFirst (), "Error: This means that the database has not been created correctly"); // verify that the tables have been created do { tableNameHashSet.Remove (c.GetString (0)); } while(c.MoveToNext ()); // if this fails, it means that your database doesn't contain both the location entry // and weather entry tables Assert.IsTrue (tableNameHashSet.Count == 0, "Error: Your database was created without both the location entry and weather entry tables"); // now, do our tables contain the correct columns? c = db.RawQuery ("PRAGMA table_info(" + WeatherContractOpen.LocationEntryOpen.TABLE_NAME + ")", null); Assert.IsTrue (c.MoveToFirst (), "Error: This means that we were unable to query the database for table information."); // Build a HashSet of all of the column names we want to look for HashSet<String> locationColumnHashSet = new HashSet<String> (); locationColumnHashSet.Add (WeatherContractOpen.LocationEntryOpen._ID); locationColumnHashSet.Add (WeatherContractOpen.LocationEntryOpen.COLUMN_CITY_NAME); locationColumnHashSet.Add (WeatherContractOpen.LocationEntryOpen.COLUMN_COORD_LAT); locationColumnHashSet.Add (WeatherContractOpen.LocationEntryOpen.COLUMN_COORD_LONG); locationColumnHashSet.Add (WeatherContractOpen.LocationEntryOpen.COLUMN_LOCATION_SETTING); int columnNameIndex = c.GetColumnIndex ("name"); do { String columnName = c.GetString (columnNameIndex); locationColumnHashSet.Remove (columnName); } while(c.MoveToNext ()); // if this fails, it means that your database doesn't contain all of the required location // entry columns Assert.IsTrue (locationColumnHashSet.Count == 0, "Error: The database doesn't contain all of the required location entry columns"); db.Close (); }