@@ -0,0 +1,3038 @@
+package com.google.sps.utilities;%0A%0Aimport com.google.api.gax.longrunning.OperationFuture;%0Aimport com.google.cloud.spanner.Database;%0Aimport com.google.cloud.spanner.DatabaseAdminClient;%0Aimport com.google.cloud.spanner.DatabaseId;%0Aimport com.google.cloud.spanner.Spanner;%0Aimport com.google.cloud.spanner.SpannerOptions;%0Aimport com.google.gson.Gson;%0Aimport com.google.spanner.admin.database.v1.CreateDatabaseMetadata;%0Aimport java.util.Arrays;%0Aimport java.util.HashSet;%0Aimport java.util.Set;%0Aimport javax.servlet.http.HttpServletRequest;%0A%0Apublic class TestDatabaseWrapper %7B%0A  private static Spanner spanner;%0A  private static DatabaseId databaseId;%0A  private static DatabaseAdminClient databaseAdminClient;%0A  private static DatabaseWrapper databaseWrapper;%0A%0A  public TestDatabaseWrapper() %7B%0A    SpannerOptions options = SpannerOptions.newBuilder().build();%0A    spanner = options.getService();%0A    databaseAdminClient = spanner.getDatabaseAdminClient();%0A    databaseId = DatabaseId.of(%0A        options.getProjectId(), DatabaseConstants.INSTANCE_ID, DatabaseConstants.DATABASE_ID);%0A    OperationFuture%3CDatabase, CreateDatabaseMetadata%3E op = databaseAdminClient.createDatabase(%0A        databaseId.getInstanceId().getInstance(), databaseId.getDatabase(),%0A        Arrays.asList(%22CREATE TABLE Users (%22%0A                + %22  Name                 STRING(MAX) NOT NULL,%22%0A                + %22  Email                STRING(MAX) NOT NULL,%22%0A                + %22  Interests            ARRAY%3CSTRING(MAX)%3E,%22%0A                + %22  Skills               ARRAY%3CSTRING(MAX)%3E,%22%0A                + %22  EventsHosting        ARRAY%3CSTRING(MAX)%3E,%22%0A                + %22  EventsParticipating  ARRAY%3CSTRING(MAX)%3E,%22%0A                + %22  EventsVolunteering   ARRAY%3CSTRING(MAX)%3E%22%0A                + %22) PRIMARY KEY (Email)%22,%0A            %22CREATE TABLE Events (%22%0A                + %22  EventID        STRING(MAX) NOT NULL,%22%0A                + %22  Name           STRING(MAX) NOT NULL,%22%0A                + %22  Description    STRING(MAX),%22%0A                + %22  Date           DATE,%22%0A                + %22  Location       STRING(MAX),%22%0A                + %22  Attendees      ARRAY%3CSTRING(MAX)%3E,%22%0A                + %22  Host           STRING(MAX),%22%0A                + %22  Labels         ARRAY%3CSTRING(MAX)%3E,%22%0A                + %22  Opportunities  ARRAY%3CSTRING(MAX)%3E%22%0A                + %22) PRIMARY KEY (EventID)%22,%0A            %22CREATE TABLE VolunteeringOpportunity (%22%0A                + %22  VolunteeringOpportunityID  STRING(MAX) NOT NULL,%22%0A                + %22  EventID  STRING(MAX) NOT NULL,%22%0A                + %22  Name                       STRING(MAX) NOT NULL,%22%0A                + %22  NumSpotsLeft               INT64 NOT NULL,%22%0A                + %22  RequiredSkills             ARRAY%3CSTRING(MAX)%3E,%22%0A                + %22  Volunteers                 ARRAY%3CSTRING(MAX)%3E%22%0A                + %22) PRIMARY KEY (VolunteeringOpportunityID)%22));%0A  %7D%0A%0A  /* Drops the database */%0A  public void dropDatabase() %7B%0A    databaseAdminClient.dropDatabase(%0A        databaseId.getInstanceId().getInstance(), databaseId.getDatabase());%0A  %7D%0A%7D

Add wrapper for testing.