### Question:
GCPMonitorService implements VMMonitorService<GCPRegion> { @Override public List<VirtualMachine> fetchRunningVms(final GCPRegion region) { verifyProjectInfo(region); final Compute compute = getGCPCompute(region); final InstanceList instances = getGcpVmInstances(region, compute); return createListOfVMsFromGCPInstances(instances); } GCPMonitorService(@Value("${monitor.instance.tag}") final String instanceTagString); @Override List<VirtualMachine> fetchRunningVms(final GCPRegion region); @Override CloudProvider provider();  }### Answer:
@Test public void shouldThrowExceptionOnEmptyProjectName() { final GCPRegion gcpRegion = new GCPRegion(); gcpRegion.setAuthFile(CREDENTIALS_PATH); gcpRegion.setRegionCode(REGION_CODE); assertThrows(IllegalArgumentException.class, () -> new GCPMonitorService(TAG).fetchRunningVms(gcpRegion)); }
@Test public void shouldThrowExceptionOnEmptyZoneId() { final GCPRegion gcpRegion = new GCPRegion(); gcpRegion.setAuthFile(CREDENTIALS_PATH); gcpRegion.setProject(PROJECT_NAME); assertThrows(IllegalArgumentException.class, () -> new GCPMonitorService(TAG).fetchRunningVms(gcpRegion)); }