### Question:
XSUserInfoAdapter implements XSUserInfo { @Override public String getGivenName() { checkNotGrantTypeClientCredentials("getGivenName"); String externalAttributeName = getExternalAttribute(GIVEN_NAME); if (externalAttributeName == null) { return getClaimValue(GIVEN_NAME); } else { return externalAttributeName; } } XSUserInfoAdapter(Object accessToken);  XSUserInfoAdapter(AccessToken accessToken);   XSUserInfoAdapter(Object accessToken, OAuth2ServiceConfiguration configuration); @Override String getLogonName(); @Override String getGivenName(); @Override String getFamilyName(); @Override String getOrigin(); @Override String getIdentityZone(); @Override /** * "ext_attr": { "enhancer": "XSUAA", "subaccountid": "my-subaccount-1234" }, */ String getSubaccountId(); @Override String getZoneId(); @Override /** * "ext_attr": { "enhancer": "XSUAA", "zdn": "paas-subdomain" }, */ String getSubdomain(); @Override String getClientId(); @Override String getJsonValue(String attribute); @Override String getEmail(); @Override String getDBToken(); @Override String getHdbToken(); @Override String getAppToken(); @Override String getToken(String namespace, String name); @Override String[] getAttribute(String attributeName); @Override boolean hasAttributes(); @Override String[] getSystemAttribute(String attributeName); @Override boolean checkScope(String scope); @Override boolean checkLocalScope(String scope); @Override String getAdditionalAuthAttribute(String attributeName); @Override String getCloneServiceInstanceId(); @Override String getGrantType(); @Override boolean isInForeignMode(); @Override String requestTokenForClient(String clientId, String clientSecret, String baseUaaUrl); @Override String requestTokenForUser(String clientId, String clientSecret, String baseUaaUrl); @Override String requestToken(XSTokenRequest tokenRequest);  }### Answer:
@Test public void testGetGivenName() throws XSUserInfoException { assertThat(cut.getGivenName()).isEqualTo("TestUser"); }
@Test public void testGetGivenName_grantTypeClientCredentials_throwsException() throws XSUserInfoException { cut = new XSUserInfoAdapter(createMockToken(GrantType.CLIENT_CREDENTIALS)); assertThatThrownBy(() -> cut.getGivenName()).isInstanceOf(XSUserInfoException.class) .hasMessageContaining("getGivenName") .hasMessageContaining(GrantType.CLIENT_CREDENTIALS.toString()); }