summaryrefslogtreecommitdiff
path: root/src/test/java/com/android/vts/api/VtsSpreadSheetSyncServletTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/com/android/vts/api/VtsSpreadSheetSyncServletTest.java')
-rw-r--r--src/test/java/com/android/vts/api/VtsSpreadSheetSyncServletTest.java70
1 files changed, 57 insertions, 13 deletions
diff --git a/src/test/java/com/android/vts/api/VtsSpreadSheetSyncServletTest.java b/src/test/java/com/android/vts/api/VtsSpreadSheetSyncServletTest.java
index f6e3694..661ea9e 100644
--- a/src/test/java/com/android/vts/api/VtsSpreadSheetSyncServletTest.java
+++ b/src/test/java/com/android/vts/api/VtsSpreadSheetSyncServletTest.java
@@ -19,57 +19,101 @@ package com.android.vts.api;
import com.android.vts.entity.ApiCoverageExcludedEntity;
import com.android.vts.job.VtsSpreadSheetSyncServlet;
import com.android.vts.util.ObjectifyTestBase;
+import com.google.api.client.extensions.appengine.datastore.AppEngineDataStoreFactory;
+import com.google.api.services.sheets.v4.SheetsScopes;
import com.google.gson.Gson;
+import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.Mock;
+import org.mockito.Spy;
import javax.servlet.ServletConfig;
+import javax.servlet.ServletContext;
import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import java.io.FileNotFoundException;
import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.StringWriter;
+import java.io.InputStream;
+import java.util.Collections;
import java.util.List;
+import java.util.Properties;
import static com.googlecode.objectify.ObjectifyService.factory;
import static com.googlecode.objectify.ObjectifyService.ofy;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.when;
+@Slf4j
public class VtsSpreadSheetSyncServletTest extends ObjectifyTestBase {
private Gson gson;
+ @Spy private VtsSpreadSheetSyncServlet servlet;
+
@Mock private HttpServletRequest request;
@Mock private HttpServletResponse response;
- @Mock ServletConfig servletConfig;
+ @Mock private ServletContext context;
+
+ @Mock private ServletConfig servletConfig;
+
+ @Mock private ServletOutputStream outputStream;
+
+ private final AppEngineDataStoreFactory DATA_STORE_FACTORY = new AppEngineDataStoreFactory();
+
+ private final List<String> GOOGLE_API_SCOPES =
+ Collections.singletonList(SheetsScopes.SPREADSHEETS_READONLY);
/** It be executed before each @Test method */
@BeforeEach
void setUpExtra() {
+
+ factory().register(ApiCoverageExcludedEntity.class);
+
gson = new Gson();
+
+ Properties systemConfigProp = new Properties();
+
+ InputStream defaultInputStream =
+ VtsSpreadSheetSyncServletTest.class
+ .getClassLoader()
+ .getResourceAsStream("config.properties");
+
+ try {
+ systemConfigProp.load(defaultInputStream);
+ } catch (FileNotFoundException e) {
+ log.error(e.getMessage());
+ } catch (IOException e) {
+ log.error(e.getMessage());
+ }
+
+ when(request.getServletContext()).thenReturn(context);
+ when(request.getServletContext().getAttribute("dataStoreFactory"))
+ .thenReturn(DATA_STORE_FACTORY);
+ when(request.getServletContext().getAttribute("googleApiScopes"))
+ .thenReturn(GOOGLE_API_SCOPES);
+
+ when(servletConfig.getServletContext()).thenReturn(context);
+ when(servletConfig.getServletContext().getAttribute("systemConfigProp"))
+ .thenReturn(systemConfigProp);
+
}
@Test
public void testSyncServletJob() throws IOException, ServletException {
- factory().register(ApiCoverageExcludedEntity.class);
-
when(request.getPathInfo()).thenReturn("/cron/vts_spreadsheet_sync_job");
- StringWriter sw = new StringWriter();
- PrintWriter pw = new PrintWriter(sw);
-
- when(response.getWriter()).thenReturn(pw);
+ when(servlet.getServletConfig()).thenReturn(servletConfig);
+ when(response.getOutputStream()).thenReturn(outputStream);
- VtsSpreadSheetSyncServlet vtsSpreadSheetSyncServlet = new VtsSpreadSheetSyncServlet();
- vtsSpreadSheetSyncServlet.init(servletConfig);
- vtsSpreadSheetSyncServlet.doGet(request, response);
- String result = sw.getBuffer().toString().trim();
+ servlet.init(servletConfig);
+ servlet.doGet(request, response);
+ String result = outputStream.toString().trim();
List<ApiCoverageExcludedEntity> apiCoverageExcludedEntityList =
ofy().load().type(ApiCoverageExcludedEntity.class).list();