### Question:
Gateway { public Gateway setMerchantId(String merchantId) { if (merchantId == null) { throw new IllegalArgumentException("Merchant ID may not be null"); } this.merchantId = merchantId; 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 testSetMerchantIdThrowsExceptionIfNull() throws Exception { try { gateway.setMerchantId(null); fail("Null merchant ID should throw illegal argument exception"); } catch (Exception e) { assertTrue(e instanceof IllegalArgumentException); } }
@Test public void setMerchantIdWorksAsExpected() throws Exception { gateway.setMerchantId("MERCHANT_ID"); assertEquals(gateway.merchantId, "MERCHANT_ID"); }