### Question:
Gateway { public Gateway setRegion(Region region) { if (region == null) { throw new IllegalArgumentException("Region may not be null"); } this.region = region; return this; } Gateway(); String getMerchantId(); Gateway setMerchantId(String merchantId); Region getRegion(); Gateway setRegion(Region region); void updateSession(String sessionId, String apiVersion, GatewayMap payload, GatewayCallback callback); Single<GatewayMap> updateSession(String sessionId, String apiVersion, GatewayMap payload); static void start3DSecureActivity(Activity activity, String html); static void start3DSecureActivity(Activity activity, String html, String title); static boolean handle3DSecureResult(int requestCode, int resultCode, Intent data, Gateway3DSecureCallback callback); static void requestGooglePayData(PaymentsClient paymentsClient, PaymentDataRequest request, Activity activity); static boolean handleGooglePayResult(int requestCode, int resultCode, Intent data, GatewayGooglePayCallback callback);  }### Answer:
@Test public void testSetRegionThrowsExceptionIfNull() throws Exception { try { gateway.setRegion(null); fail("Null region should throw illegal argument exception"); } catch (Exception e) { assertTrue(e instanceof IllegalArgumentException); } }
@Test public void testSetRegionWorksAsIntended() throws Exception { gateway.setRegion(Gateway.Region.ASIA_PACIFIC); assertEquals(Gateway.Region.ASIA_PACIFIC, gateway.region); }